Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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?

  • Utilizar Qt / C ++ para llamar al código Java a través de JNI. FindClass no encuentra clase
  • Cómo depurar código nativo en un proyecto de biblioteca de Android?
  • Invocación de funciones JNI en el nombre del paquete de Android que contiene subrayado
  • Cómo utilizar c / cpp biblioteca / funciones en android
  • ¿Qué es "jobject this" en JNI y para qué se utiliza?
  • Activos de Android, C, JNI
  • Leer el campo entero del objeto Java con C ++ (JNI)
  • Cómo obtener un contexto de una actividad nativa
  • One Solution collect form web for “Error durante la compilación de la muestra de jni de android: inválido -march = opción: `armv5te '”

    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.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.