Mando:
./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: error: referencia indefinida a '__gnu_mcount_nc'
main.c: 124: error: referencia indefinida a '__gnu_mcount_nc'
main.c: 131: error: referencia indefinida a '__gnu_mcount_nc'
cjson.c: 50: error: referencia indefinida a '__gnu_mcount_nc'
collect2: error: ld devolvió 1 estado de salida
Estoy tratando de compilar el binario iperf3 para Android. Estoy muy decepcionado de que no haya información concreta para compilar el binario iperf3 para Android. ¿Podría alguien ayudarme?
Gracias,
-Hardik
cjson.c: 50: error: referencia indefinida a '__gnu_mcount_nc'
cjson.c: 56: error: referencia indefinida a '__gnu_mcount_nc'
cjson.c: 72: error: referencia indefinida a '__gnu_mcount_nc'
cjson.c: 85: error: referencia indefinida a '__gnu_mcount_nc'
iperf3 no es compatible oficialmente con Android y no tenemos los recursos para hacerlo. Así que etiquetado como "se busca ayuda".
Observamos que iperf2 es oficialmente compatible con Android. ¿Quizás esa podría ser una plataforma más adecuada?
Estoy enfrentando el mismo problema, ¿hay alguna sugerencia para esto?
Reemplacé el script Configure con CMake para mis propósitos. Estoy bastante seguro de que podría obtener esta compilación para Android, pero actualmente estoy compilando para iOS.
https://github.com/palmerc/iperf
[Actualizar]
Configuración 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.
Trabajó. También probé con -D ANDROID_ABI = arm64-v8a
Si alguien quiere, puedo enviar la compilación de CMake como una solicitud de extracción
Alternativamente, edite src / Makefile.in, eliminando "-pg" de iperf3_profile_CFLAGS e iperf3_profile_LDFLAGS.
Aquí hay tres soluciones para este problema, en orden de menor esfuerzo a mayor esfuerzo:
En el momento en que falla la vinculación del ejecutable perfilado iperf3, el ejecutable iperf3 "normal" probablemente ya esté creado ... al menos está en mis sistemas. Entonces, si está dispuesto a aceptar la salida de error del proceso de creación (y un poco de trabajo desperdiciado en el host de compilación), es posible que no necesite hacer nada.
Después del paso configure
, habrá una definición en src/Makefile
que se ve así:
noinst_PROGRAMS = t_timer$(EXEEXT) t_units$(EXEEXT) t_uuid$(EXEEXT) \
iperf3_profile$(EXEEXT)
Si lo edita para que se vea así, deshabilitará la compilación del iperf3 perfilado:
noinst_PROGRAMS = t_timer$(EXEEXT) t_units$(EXEEXT) t_uuid$(EXEEXT)
src/Makefile.am
y cambia la línea que se lee así:noinst_PROGRAMS = t_timer t_units t_uuid iperf3_profile
Para verse así:
noinst_PROGRAMS = t_timer t_units t_uuid
Y luego ejecute ./bootstrap.sh
, que regenerará el proyecto Makefiles para hacer que la exclusión del ejecutable iperf3 perfilado sea permanente (dentro de ese árbol fuente).
En este punto, me inclino a escribir esto como un elemento de preguntas frecuentes y cerrar el problema.
O:
./configure --disable-profiling --host = arm-linux-androideabi
Comentario más útil
O:
./configure --disable-profiling --host = arm-linux-androideabi