마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

android NDK 빌드오류

0 추천
[armeabi] Compile thumb  : NDKTest <= NDKTest.c
Assembler messages:
Fatal error: invalid -march= option: `armv5te'
/cygdrive/e/adt-bundle-windows-x86_64-20131030/adt-bundle-windows-x86_64-20131030/android-ndk-r9d-windows-x86_64/android-ndk-r9d/build/core/build-binary.mk:391: recipe for target 'obj/local/armeabi/objs/NDKTest/NDKTest.o' failed
make: *** [obj/local/armeabi/objs/NDKTest/NDKTest.o] Error 1
 
컴파일중 오류가 발생하는데 armv5te가 무엇인지 잘모르겠습니다.
 
이번kitkat 들어오면서 appcompat_v7 라는 라이브러리도 생겼는데 이것 문제일수도 있나요?
디엔느 (180 포인트) 님이 2014년 6월 5일 질문

1개의 답변

+1 추천
 
채택된 답변

appcompat_v7와는 전혀 관계가 없습니다.

컴파일 시 사용할 arm의 명령어 버젼을 정해 줄 수 있으며,

 armv5te 로 옵션을 줘서 빌드를 하려고 햇는데

 다른 arm 명령어도 지원하라고 하는 부분이 있어서 오류가 난 것으로 보입니다. 

 Android.mk로 빌드 하신거 맞는지요? 

 

별도 Make 파일로 빌드한다면 Make 파일 옵션이 잘 못 들어갈 가능성이 높으며,  Android.mk를 사용하셨다면 NDKTest.cpp 에 

Neon쪽 코드가 있어서 발생할 가능성이 높습니다.

전자라면 빌드시 V=1 옵션을 줘서(ndk-build V=1) 통해 나오는 풀 로그를 확인 해 보시고,

후자라면 Application.mk 파일의 APP_ABI := armeabi 값 대신  APP_ABI := armeabi-v7a 로 바꿔 보세요.

 

사악미소 (65,330 포인트) 님이 2014년 6월 5일 답변
디엔느님이 2014년 6월 5일 채택됨
답변 감사합니다.

Android.mk를 사용해서 빌드 중입니다만 APP_ABI := armeabi-v7a 를 Application.mk 파일에 적용 하였으나 아래와 같은 로그가 발생합니다.


rm -f ./libs/armeabi/lib*.so ./libs/armeabi-v7a/lib*.so ./libs/armeabi-v7a-hard/lib*.so ./libs/mips/lib*.so ./libs/x86/lib*.so
rm -f ./libs/armeabi/gdbserver ./libs/armeabi-v7a/gdbserver ./libs/armeabi-v7a-hard/gdbserver ./libs/mips/gdbserver ./libs/x86/gdbserver
rm -f ./libs/armeabi/gdb.setup ./libs/armeabi-v7a/gdb.setup ./libs/armeabi-v7a-hard/gdb.setup ./libs/mips/gdb.setup ./libs/x86/gdb.setup
[armeabi-v7a] Compile thumb  : NDKTest <= NDKTest.c
/cygdrive/e/adt-bundle-windows-x86_64-20131030/adt-bundle-windows-x86_64-20131030/android-ndk-r9d-windows-x86_64/android-ndk-r9d/toolchains/arm-linux-androideabi-4.6/prebuilt/windows-x86_64/bin/arm-linux-androideabi-gcc -MMD -MP -MF ./obj/local/armeabi-v7a/objs/NDKTest/NDKTest.o.d.org -fpic -ffunction-sections -funwind-tables -fstack-protector -no-canonical-prefixes -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp -mthumb -Os -g -DNDEBUG -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -Ijni -DANDROID  -Wa,--noexecstack -Wformat -Werror=format-security    -IE:/adt-bundle-windows-x86_64-20131030/adt-bundle-windows-x86_64-20131030/android-ndk-r9d-windows-x86_64/android-ndk-r9d/platforms/android-8/arch-arm/usr/include -c  jni/NDKTest.c -o ./obj/local/armeabi-v7a/objs/NDKTest/NDKTest.o && ./obj/convert-dependencies.sh ./obj/local/armeabi-v7a/objs/NDKTest/NDKTest.o.d
Assembler messages:
Fatal error: invalid -march= option: `armv7-a'
/cygdrive/e/adt-bundle-windows-x86_64-20131030/adt-bundle-windows-x86_64-20131030/android-ndk-r9d-windows-x86_64/android-ndk-r9d/build/core/build-binary.mk:391: recipe for target 'obj/local/armeabi-v7a/objs/NDKTest/NDKTest.o' failed
make: *** [obj/local/armeabi-v7a/objs/NDKTest/NDKTest.o] Error 1

ndk는 android-ndk-r9d-windows-x86_64 를 사용 중입니다.
혹시 무언가 ndk 설정중 빼먹은것이 있을까요?
아래 페이지를 보면서 적용중입니다.
http://shary1012.tistory.com/88
단순 테스트 코드였군요... 그럼 make 파일 쪽은 문제가 없으실 듯 하며.
아무래도  64bit 바이러리 symbol 링크 오류인 듯 합니다.

http://stackoverflow.com/questions/10770296/error-while-compiling-android-jni-sample-invalid-march-option-armv5te 의 답글을 참조해보세요.
네 답변감사합니다.
cygwin이 갑자기 문제를 일으켜서 다시 설치중입니다 ㅠㅠ
다시 개발환경 구축하고 확인해보도록 하겠습니다.
...