Error durante la compilación de la muestra de jni de android: inválido -march = opción: `armv5te '

Cuando intento compilar algunas muestras del ndk del android siempre consigo este error:

$ cd ~/Dev/Android/ndk/samples/hello-jni $ ~/Dev/Android/ndk/ndk-build Gdbserver : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver Gdbsetup : libs/armeabi/gdb.setup Compile thumb : hello-jni <= hello-jni.c Assembler messages: Fatal error: invalid -march= option: `armv5te' make: *** [obj/local/armeabi/objs-debug/hello-jni/hello-jni.o] Error 1 

¿Qué pasa conmigo o con mi sistema?

He encontrado una solución:

 $ ln -s $NDK_PATH/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-as $NDK_PATH/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/libexec/gcc/arm-linux-androideabi/4.4.3/as 

En primer lugar, ejecuté el constructor con opciones para que se muestre las comunicaciones en ejecución:

 $ ndk-build -BV=1 

De modo que descubrí cómo ejecuta el compilador y pasó el mismo comando a strace

 strace arm-linux-androideabi-gcc -MMD -MP -MF ./obj/local/armeabi/objs-debug/hello-jni/hello-jni.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=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -Ijni -DANDROID -Wa,--noexecstack -O0 -g -I/home/aleck/Dev/Android/ndk/platforms/android-8/arch-arm/usr/include -c jni/hello-jni.c -o ./obj/local/armeabi/objs-debug/hello-jni/hello-jni.o 

Que revela que por alguna razón desconocida el brazo-linux-androideabi-gcc hace una búsqueda del programa del ensamblador por pensamiento el estándar pero en este caso el nombre inválido 'como' en vez de 'arm-linux-androideabi-como'

 stat64("/home/aleck/Dev/Android/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../libexec/gcc/arm-linux-androideabi/4.4.3/as", 0xbfedea68) = -1 ENOENT (No such file or directory) stat64("/home/aleck/Dev/Android/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../libexec/gcc/as", 0xbfedea68) = -1 ENOENT (No such file or directory) stat64("/home/aleck/Dev/Android/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/arm-linux-androideabi/4.4.3/as", 0xbfedea68) = -1 ENOENT (No such file or directory) stat64("/home/aleck/Dev/Android/ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/../lib/gcc/arm-linux-androideabi/4.4.3/../../../../arm-linux-androideabi/bin/as", 0xbfedea68) = -1 ENOENT (No such file or directory) vfork() = 6931 waitpid(6931, Assembler messages: Fatal error: invalid -march= option: `armv5te' 

Así que hice un enlace suave llamado 'como' en el primer lugar donde se espera que sea.

  • No se puede resolver el símbolo webrtc en Android Studio
  • Callback Listener en Unity - Cómo llamar al método de archivo de script desde UnityPlayerActivity en Android
  • Java JNI vs. Android NDK
  • ¿Cómo utilizar Java con NDK Android?
  • Cómo liberar jstring en un bucle correctamente?
  • Bloquear el cuadro de diálogo desde el código JNI
  • Firma de android apk con gradle-experimental: 0.2.0
  • Qt para Android - el equivalente de startActivityForResult no funciona
  • ¿Qué es "jobject this" en JNI y para qué se utiliza?
  • ¿Cómo compartir una variable entre Java y C en android JNI?
  • Java.lang.UnsatisfiedLinkError: No se pudo cargar eposprint: findLibrary returned null
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.