我使用Android NDK GCC工具链将项目编译为命令行。 我的gcc位置是
/opt/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc
我正在使用gcc选项
--sysroot=/opt/android-ndk/platforms/android-8/arch-arm/
构建Hello World时没有问题。但对于这个项目,在链接期间,它会产生错误:
/opt/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/ld:
crtbegin_static.o: No such file: No such file or directory
实际上,“crtbegin_static.o”位于
/opt/android-ndk/platforms/android-8/arch-arm/usr/lib
如果我把它放到
/opt/android-ndk/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/lib/gcc/arm-linux-androideabi/4.4.3
那么这个问题就可以解决了。
无论如何都要让gcc正确找到crtbegin_static.o
。
答案 0 :(得分:2)
最后,我找到了解决方案。它可以通过将“--sysroot =”选项再次传递给链接器而不是仅使用编译器来解决,使用
-Wl,--sysroot=/opt/android-ndk/platforms/android-8/arch-arm/
答案 1 :(得分:1)