Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

473
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda