如何使用arm-linux-androideabi编译器

use*_*643 7 c++ linux android gcc android-ndk

我想知道如何使用arm-linux-androideabi编译器.该编译器是android-ndk工具.

ndk-build刀具android-ndk工具.要编译ethercat堆栈,我只需要arm-linux-androideabi编译器.

但是,我看到了这个消息.

root@ubuntu:/opt/android/android-ndk-r9c/jni# arm-linux-androideabi-gcc -o test test.c
/opt/android/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtbegin_dynamic.o: No such file or directory
/opt/android/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtend_android.o: No such file or directory
/opt/android/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lc
/opt/android/android-ndk-r9c/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.6/../../../../arm-linux-androideabi/bin/ld: error: cannot find -ldl
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

小智 7

您需要让编译器知道在哪里查找这些文件.尝试使用:

arm-linux-androideabi-gcc --sysroot=/opt/android/android-ndk-r9c/platforms/android-19/arch-arm -o test test.c
Run Code Online (Sandbox Code Playgroud)

其中19是你想要使用的android API级别.您可以在ndk目录中找到有关docs/STANDALONE-TOOLCHAIN.html的更多信息.