2012-03-04 30 views
1

我正在使用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

回答

2

最后,我已经找到了解决办法。可以通过将“--sysroot =”选项再次传递给链接器,而不仅仅是编译器,使用

-Wl,--sysroot=/opt/android-ndk/platforms/android-8/arch-arm/ 
相关问题