Android ndk-r8 "error al intentar ejecutar 'cc1plus': execvp: Ningún archivo o directorio"
Estoy tratando de usar el NDK de Android en Mountain Lion para construir una biblioteca para Android, siguiendo esta guía
Http://masl.cis.gvsu.edu/2012/01/25/android-echoprint/
- Inicializar variables globales a cero en Android NDK
- Cómo encontrar el uso de memoria de mi aplicación Android escrito C ++ usando NDK
- Decodificación de vídeo acelerado por hardware para H.264 en android antes de Jelly Bean
- Crear un SDK (archivo jar único) con archivos "so"
- Vinculación con la biblioteca actualizada en Android
Cuando llega el momento de compilar la biblioteca, ejecuto:
cd <path to jni> <ndk>/ndk-build
Obtuve el siguiente error:
Compile++ thumb : echoprint-jni <= AndroidCodegen.cpp arm-linux-androideabi-g++: error trying to exec 'cc1plus': execvp: No such file or directory make: *** [/Users/wingdom/Desktop/obj/local/armeabi/objs/echoprint-jni/AndroidCodegen.o] Error 1
Creo que he añadido todo lo que necesito para mi variable de ruta de acceso:
export PATH=$PATH:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:Developer/android-sdk/tools:/Developer/android-sdk/platform-tools:/Developer/android-ndk:/Developer/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin
¿Qué más debo hacer para que esto se compile? Estoy utilizando el NDK r8b actualmente, pero lo he probado con versiones de todo el camino de regreso a 6.
EDITAR:
He intentado esta solución: Error al construir un proyecto de ejemplo de android ndk
Añadiendo
export PATH=$PATH:/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2
A mi camino me recibe este error:
cc1plus: error: unrecognized command line option "-mbionic" cc1plus: error: unrecognized command line option "-mthumb" cc1plus: error: unrecognized command line option "-mfpu=vfp" /Users/wingdom/Desktop/jni/AndroidCodegen.cpp:1: error: bad value (armv5te) for -march= switch /Users/wingdom/Desktop/jni/AndroidCodegen.cpp:1: error: bad value (xscale) for -mtune= switch make: *** [/Users/wingdom/Desktop/obj/local/armeabi/objs/echoprint-jni/AndroidCodegen.o] Error 1
Pero añadiendo
export CROSS_COMPILER=$PATH:/Developer/android-ndk/toolchains/arm-linux-androideabi-4.6/prebuilt/darwin-x86/bin
No ayuda, como lo hizo en el enlace anterior.
- Compilación de STXXL bajo Android NDK r8b
- Uso de Android NDK
- Muestra de audio nativo en el problema de generación de NDK
- Android: No se puede cargar la biblioteca (94 tablas esenciales que faltan)
- Depuración NDK de Android: armeabi-v7a no funciona
- No se puede vincular la biblioteca nativa en la muestra de Android de OpenCV
- ¿Tiene soporte para Android?
- Construcción de la biblioteca nativa con el brazo independiente androide toolchain
He experimentado el mismo error.
No pude ejecutar ni siquiera el comando 'gcc, g ++'. Así que he googled mucho para encontrar una solución, pero nada me ayudó.
Entonces, encontré que algún nombre de archivo en ndk no es correcto, con tailing _
en algún nombre de archivo .. (En mi caso, en toolchains / arm-linux-androideabi-4.6 / pre-construido / darwin-x86 / arm-linux-androideabi / bin Carpeta, hay gcc_
, g++_
, c++_
lugar de gcc
, g++
, c++
.)
Utilicé el desarchivador para extraer el archivo NDK, así que creo que hay algo mal con el procedimiento de desarchivar.
Así que volví a descargar NDK y comprobé la suma de comprobación MD5, luego extraje el archivo utilizando la utilidad de archivo predeterminada de Mac.
Ahora, el problema ha resuelto.
Suena como si tuviera una mala descarga / descompresión del NDK. El binario cc1plus
que está buscando debe estar en $NDK_HOME/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/libexec/gcc/arm-linux-androideabi/4.4.3/
. Si no está allí, intente volver a descargar el SDK y / o desempaquetarlo de nuevo.
Si está allí, asegúrese de construir pasando V=1
a ndk-build
, y ver si hay alguna impar- -B
opciones pasadas al compilador. La opción -B
indica a gcc
dónde encontrar sus "subprogramas" (de los cuales cc1plus
es uno). Bastante seguro no debe haber ninguno en las líneas de comando para r8, así que si hay, algo en alguna parte está pasando banderas malas. Por ejemplo, en mi sistema, una línea de comandos de C ++ NDK termina mirando algo como esto:
/opt/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-g++ -MMD -MP -MF ./obj/local/armeabi-v7a/objs/sometarget/SomeCppFile.od -fpic -ffunction-sections -funwind-tables -fstack-protector -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-exceptions -fno-rtti -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -I/opt/android-ndk/sources/cxx-stl/stlport/stlport -I/opt/android-ndk/sources/cxx-stl//gabi++/include -DANDROID -Wall -Wa,--noexecstack -frtti -O2 -DNDEBUG -g -I/opt/android-ndk/platforms/android-8/arch-arm/usr/include -c jni/SomeCppFile.cpp -o ./obj/local/armeabi-v7a/objs/sometarget/SomeCppFile.o
Tal vez usted necesita para instalar el g ++:
$sudo apt-get install g++
He pasado cerca de un día para encontrar la causa de raíz de esto
arm-linux-androideabi-gcc: error trying to exec 'cc1': execvp: No such file...
Y otras cuestiones.
Los problemas eran que descomprimí NDK y SDK con 7z que eliminó el permiso ejecutable para todos los binarios y Eclipse no pudo iniciar cc1. Una vez que descomprimé los archivos tar de SDK y NDK usando tar, todo empezó a funcionar bien.
- Intellij Idea log GradleConnectionException: No se pudo ejecutar la compilación usando la instalación de Gradle mientras se construye
- Crear ContentProvider asincrónico para Actionbar SearchView