如何从GCC的不同路径使用C库
问题描述:
我正在使用Android NDK GCC工具链将项目编译为命令行。 我的gcc的位置是如何从GCC的不同路径使用C库
/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
。
答
最后,我已经找到了解决办法。可以通过将“--sysroot =”选项再次传递给链接器,而不仅仅是编译器,使用
-Wl,--sysroot=/opt/android-ndk/platforms/android-8/arch-arm/
它们不起作用。已经尝试过了。 – Allen 2012-03-05 03:46:57