如何定义目标文件到GCC的位置?

时间:2015-01-07 06:19:01

标签: android gcc

Android NDK还有一些其他目标文件,如crtbegin_static.o

如何在编译期间将目标文件的位置定义到GCC?

谢谢。

2 个答案:

答案 0 :(得分:0)

以前曾经问过,但答案并没有详细说明。基本上,您需要将.o文件转换为静态库,然后在构建脚本中将其链接。

使用如下的终端命令转换.o文件:

ar rcs somefile.a somefile.o somefile2.o somefile3.o

然后在你的Android.mk中,在文件顶部添加此部分(在LOCAL_PATH:= ...行之后):

include $(CLEAR_VARS)
LOCAL_MODULE := somelib
LOCAL_SRC_FILES := somefile.a
include $(PREBUILT_STATIC_LIBRARY)

然后在构建主模块的底部:

LOCAL_STATIC_LIBRARIES := somelib
include $(BUILD_SHARED_LIBRARY)

答案 1 :(得分:0)

我找到了解决方案。我不得不定义--sysroot =" ...",像这样:

LDFLAGS="-Lc:/Thirdparty/Android/NDK/platforms/android-5/arch-arm/usr/lib \
--sysroot=c:/Thirdparty/Android/NDK/platforms/android-5/arch-arm"