2012-05-26 6 views
5

जब मैं कुछ एंड्रॉयड NDK नमूने संकलित करने के लिए कोशिश मैं हमेशा इस त्रुटि मिलती है:त्रुटि एंड्रॉयड JNI नमूना संयोजित करते समय: अवैध मार्च = विकल्प: `ARMv5TE '

$ 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 

मेरे साथ क्या या अपने सिस्टम के साथ गलत क्या है?

+0

आप एक कंपाइलर या एक कंपाइलर संस्करण का उपयोग कर रहे हैं, जो उस तर्क को समझ में नहीं आता है। – EJP

उत्तर

12

मैं एक समाधान मिल गया है:

$ 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 

सबसे पहले मैं इसे प्रदर्शित करने के लिए के लिए commads निष्पादित किया जा रहा विकल्पों के साथ बिल्डर भाग गया:

$ ndk-build -B V=1 

ताकि मुझे पता चला कि यह कैसे संकलक कार्यान्वित और उसी आदेश को

strace arm-linux-androideabi-gcc -MMD -MP -MF ./obj/local/armeabi/objs-debug/hello-jni/hello-jni.o.d -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 

जो बताता है कि किसी अज्ञात कारण के लिए arm-linux-a ndroideabi-जीसीसी 'के रूप में' के बजाय सोचा मानक द्वारा लेकिन इस मामले अमान्य नाम में कोडांतरक कार्यक्रम का एक खोज करता है 'हाथ-linux-androideabi-के रूप में'

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' 

तो मैं 'के रूप में' नामक एक नरम लिंक किए गए पहली जगह जहां यह होने की उम्मीद है।

+2

धन्यवाद! मुझे लगता है कि आप एक बक्षीस के लायक हैं! – Max

संबंधित मुद्दे