Comando:
./configure --host = arm-linux-gnueabihf --prefix = / home / ec2-user / iperf_install / CC = arm-linux-androideabi-gcc CXX = arm-linux-androideabi-g ++ CFLAGS = -static CXXFLAGS = - estático
main.c: 62: erro: referência indefinida a '__gnu_mcount_nc'
main.c: 124: erro: referência indefinida a '__gnu_mcount_nc'
main.c: 131: erro: referência indefinida a '__gnu_mcount_nc'
cjson.c: 50: erro: referência indefinida a '__gnu_mcount_nc'
collect2: erro: ld retornou 1 status de saída
Estou tentando compilar o binário iperf3 para android. Estou muito desapontado por não haver informações concretas para compilar o binário iperf3 para Android. Alguém poderia ajudar?
Obrigado,
-Hardik
cjson.c: 50: erro: referência indefinida a '__gnu_mcount_nc'
cjson.c: 56: erro: referência indefinida a '__gnu_mcount_nc'
cjson.c: 72: erro: referência indefinida a '__gnu_mcount_nc'
cjson.c: 85: erro: referência indefinida para '__gnu_mcount_nc'
O iperf3 oficialmente não suporta Android e não temos os recursos para fazer isso. Portanto, marcando como "procura-se ajuda".
Observamos que o iperf2 é oficialmente compatível com Android. Talvez essa seja uma plataforma mais adequada?
Estou enfrentando o mesmo problema, há alguma sugestão para isso?
Substituí o script Configure com CMake para meus propósitos. Tenho certeza de que poderia fazer essa compilação para Android, mas atualmente estou compilando para iOS.
https://github.com/palmerc/iperf
[Atualizar]
Configuração HAVE_ENDIAN 1
cmake -D ANDROID_PLATFORM = android-21 -G Ninja -D CMAKE_TOOLCHAIN_FILE = .. / android-ndk / android-ndk-r16b / build / cmake / android.toolchain.cmake ../iperf
cmake --build.
Trabalhado. Eu também testei com -D ANDROID_ABI = arm64-v8a
Se alguém quiser, posso enviar a compilação do CMake como uma solicitação de pull
Como alternativa, edite src / Makefile.in, excluindo "-pg" de iperf3_profile_CFLAGS e iperf3_profile_LDFLAGS.
Aqui estão três soluções alternativas para este problema, do menor esforço ao maior esforço:
No momento em que a vinculação do executável com perfil iperf3 falha, o executável iperf3 "normal" provavelmente já está criado ... pelo menos está em meus sistemas. Portanto, se você estiver disposto a aceitar a saída de erro do processo de criação (e um pouco de trabalho desperdiçado no host de construção), pode não ser necessário fazer nada.
Após a etapa configure
, haverá uma definição em src/Makefile
que se parece com isto:
noinst_PROGRAMS = t_timer$(EXEEXT) t_units$(EXEEXT) t_uuid$(EXEEXT) \
iperf3_profile$(EXEEXT)
Se você editá-lo para ficar assim, ele desativará a compilação do iperf3 com perfil:
noinst_PROGRAMS = t_timer$(EXEEXT) t_units$(EXEEXT) t_uuid$(EXEEXT)
src/Makefile.am
e alterar a leitura da linha assim:noinst_PROGRAMS = t_timer t_units t_uuid iperf3_profile
Para ficar assim:
noinst_PROGRAMS = t_timer t_units t_uuid
E então execute ./bootstrap.sh
, que irá regenerar os Makefiles do projeto para fazer a exclusão do executável iperf3 com perfil permanente (dentro daquela árvore de origem).
Neste ponto, estou inclinado a apenas escrever isso como um item de FAQ e encerrar o problema.
OU:
./configure --disable-profiling --host = arm-linux-androideabi
Comentários muito úteis
OU:
./configure --disable-profiling --host = arm-linux-androideabi