2016-10-07 1 views
0

나는 다음과 같은 명령 (윈도우 64)와 C 소스 파일을 컴파일하려고 오전 :안드로이드 연타의 MIPS/MIPS64 어셈블러 오류 "명령을 실행할 수 없습니다 : 프로그램이 실행되지"

E:/Android/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/bin/clang -target mipsel-none-linux-android -gcc-toolchain E:/Android/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64 -D__android__ --sysroot=E:/Android/android-sdk/ndk-bundle/platforms/android-24/arch-mips -o "C:/array.o" -c "C:/array.c" 

난을받을 때마다 오류 :

clang.exe: error: unable to execute command: program not executable 
clang.exe: error: assembler command failed with exit code 1 (use -v to see invocation) 

나는 폴더와 필수 바이너리가 존재 함을 확인했다. (NDK 설치는 Android SDK 자체에서 제공됨).

은 또한 맥 OS에서 동일한 문제를 가지고 있지만, 추가 출력으로 "프로그램을 실행하지"오류가 발생하는 위치 :

clang: error: unknown argument: '-march' 
clang: error: unknown argument: '-mabi' 
clang: error: unknown argument: '-call_nonpic' 
clang: error: unknown argument: '-KPIC' 
clang: error: no such file or directory: 'mips32r2' 
clang: error: no such file or directory: '32' 
clang: error: assembler command failed with exit code 1 (use -v to see invocation) 

-v는 맥 OS에 모두 윈도우 x64 및 맥 OS에 (다음 보여줍니다 전화 "는/usr/빈 /와 같은") : 경로 출력 (모두가 올바른 것으로 확인)되는 타원으로

Android clang version 3.8.256229 (based on LLVM 3.8.256229) 
Target: mipsel-none-linux-android 
Thread model: posix 
... 
clang -cc1 version 3.8.256229 based upon LLVM 3.8.256229 default target x86_64-unknown-linux 
... 
"as" -march mips32r2 -mabi 32 -call_nonpic -EL -KPIC 

-이 같은 문제를 반복 할 수는 모두 윈도우 x64 및 맥 OS에서 발생합니다.


다른 모든 지원되는 안드로이드 NDK 아키텍처

이 명령 (패스를 교환하고 다른 아키텍처 -target)와 완벽하게 잘 작동합니다. i686, x86_64, aarch64, armv5te, armv6 및 armv7-a는 모두 Windows x64와 macOS에서 모두 작동합니다.

나는 경로 주위에 따옴표/따옴표의 모든 조합을 시도했지만 차이점은 없습니다.


이 문제는 mips, mips64, mipsel 및 mips64el에서 발생합니다.

답변

1

-gcc-toolchain E:/Android/android-sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64

GCC 툴체인은 Clang이 아니라 GCC 툴체인을 가리켜 야합니다. 왜 다른 아키텍처가 작동하는지 알 수 없습니다. 아마도 Clang은 빌트인 어셈블러를 사용하고 있지만 링커가 어디서 연결되는지를 설명하지 못한다. ...

https://android.googlesource.com/platform/ndk/+/master/docs/user/standalone_toolchain.md에 관심이있을 것이다. 컴파일러가 이와 같이 직접 올바르게 사용될 수 있는지 확인하는 세부 사항을 처리합니다.

+0

대단히 감사합니다. 다른 아키텍처, 특히 다른 환경에서 작동한다는 것은 매우 이상합니다. 나는 그것이 내가 이것을 놓쳤던 이유다고 생각한다. –