Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

477
Vistas
Android NDK - arm-linux-androidabi-g++: no encontrado

Estoy tratando de construir la biblioteca POCO de C++ para un objetivo de Android en un Ubuntu nuevo que acabo de instalar para eso.

Instalé el NDK de Android en /home/user/dev/Android/android-ndk-r9-x86 y agregué la ruta al NDK en las variables de entorno usando:

export ANDROID_NDK_ROOT=/home/user/dev/Android/android-ndk-r9-x86

Para construir las bibliotecas, primero me muevo al directorio raíz de la biblioteca POCO y lo configuro usando:

 ./configure --omit=NetSSL_OpenSSL,Crypto,Data/ODBC,Data/MySQL --static --config=Android

Para que compile bibliotecas estáticas .a, no compile los módulos que no quiero y compile para un objetivo de Android.

Pero llamar a make provoca el siguiente error:

 user@user-VirtualBox:~/dev/Lib/POCO/poco-1.6.1$ make make -C /home/user/dev/Lib/POCO/poco-1.6.1/Foundation make[1]: Entering directory `/home/user/dev/Lib/POCO/poco-1.6.1/Foundation' ** Compiling src/ArchiveStrategy.cpp (debug, static) arm-linux-androideabi-g++ -Iinclude -I/home/user/dev/Lib/POCO/poco-1.6.1/CppUnit/include -I/home/user/dev/Lib/POCO/poco-1.6.1/CppUnit/WinTestRunner/include -I/home/user/dev/Lib/POCO/poco-1.6.1/Foundation/include -I/home/user/dev/Lib/POCO/poco-1.6.1/XML/include -I/home/user/dev/Lib/POCO/poco-1.6.1/JSON/include -I/home/user/dev/Lib/POCO/poco-1.6.1/Util/include -I/home/user/dev/Lib/POCO/poco-1.6.1/Net/include -mthumb -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions -DPOCO_BUILD_HOST=user-VirtualBox -DPOCO_ANDROID -DPOCO_NO_FPENVIRONMENT -DPOCO_NO_WSTRING -DPOCO_NO_SHAREDMEMORY -g -D_DEBUG -c src/ArchiveStrategy.cpp -o /home/user/dev/Lib/POCO/poco-1.6.1/Foundation/obj/Android/armeabi/debug_static/ArchiveStrategy.o sh: 1: arm-linux-androideabi-g++: not found make[1]: *** [/home/user/dev/Lib/POCO/poco-1.6.1/Foundation/obj/Android/armeabi/debug_static/ArchiveStrategy.o] Error 127 make[1]: Leaving directory `/home/user/dev/Lib/POCO/poco-1.6.1/Foundation' make: *** [Foundation-libexec] Error 2

Make parece incapaz de encontrar el compilador utilizado para Android, y no tengo idea de por qué. Qué me estoy perdiendo ? ¿Olvidé algo al "instalar" el NDK?

Gracias.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El error que está recibiendo es causado por una invocación de cadena de herramientas faltante; más bien, el comando/ejecutable/binario arm-linux-androideabi-g++ no se encontraba por ninguna parte.

Afortunadamente, podemos solucionar eso instalando la cadena de herramientas independiente , que en realidad tiene exactamente lo que te estás perdiendo, un compilador cruzado arm-linux-androideabi propósito general en lugar de algún otro proveedor/plataforma un poco más oscuro. crosscompiler/toolchain específico, como armv7a-marvell-linux-android que es lo que usa marvell, o arm-linux-android que es lo que usa Clang. Para obtener más información sobre Clang, mira aquí . Sin embargo, podría estar equivocado y que Clang en realidad produce una cadena de herramientas arm-linux-androideabi , pero no estoy seguro. Sé que puede usarlo fácilmente, pero no estoy seguro de si se puede usar "directamente", que es lo que está buscando. El "resto del trabajo" son solo algunas exportaciones de ruta, pero aún así. Estamos apuntando a la solución más perezosa aquí.

La cadena de herramientas independiente debería ser suficiente para su tarea, así que intente usarla tanto como sea posible sobre cualquier otra solución de compilación cruzada.

Sin embargo, si se siente aventurero, puede crear su propio compilador cruzado (¡o toda la cadena de herramientas!) usando la herramienta crosstool-ng . Sin embargo, trate de quedarse con la rama libc de Linaro; la experiencia personal me mostró que uno de alguna manera funciona mejor y causa la menor cantidad de problemas/pérdida de tiempo.

Además, asegúrese de descargar el adecuado para su arquitectura (arquitectura) y sistema operativo, aquí también importan 32 bits frente a 64 bits. Después de una larga discusión, nos dimos cuenta de que era un problema de "32 bits frente a 64 bits". Aquí hay un enlace para leer más al respecto.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda