<p>La compilación de iperf 3 en Android falla con el siguiente error.</p>

Creado en 7 may. 2016  ·  7Comentarios  ·  Fuente: esnet/iperf

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

documentation portability

Comentario más útil

O:
./configure --disable-profiling --host = arm-linux-androideabi

Todos 7 comentarios

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:

  1. 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.

  2. 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)
  1. Similar al elemento 2 anterior, pero más permanente ... si edita 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

¿Fue útil esta página
0 / 5 - 0 calificaciones