在Android AOSP中使用预建共享库

时间:2015-03-21 06:58:36

标签: android android-source

我想在AOSP中使用预先构建的共享库。该库在Android.mk中定义如下:

include $(CLEAR_VARS)
LOCAL_MODULE := foo
LOCAL_MODULE_SUFFIX := .so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_TAG := optional
LOCAL_MODULE_PATH := system/lib
LOCAL_SRC_FILE := system/lib/foo.so
include $(BUILD_PREBUILT)

在构建期间,文件夹out/target/product/mako/obj/SHARED_LIBRARIES/foo_intermediates/export_include 创建了。

但是,构建失败,并显示无法找到out/target/product/mako/obj_arm/SHARED_LIBRARIES/foo_intermediates/export_include的错误消息。

注意" obj"和" obj_arm"。是什么导致了这个问题?

1 个答案:

答案 0 :(得分:5)

这是双目标构建(arm和arm64),因此有两个obj文件夹,一个用于32位arm,另一个用于64位arm。

我需要按如下方式定义库:

include $(CLEAR_VARS)
LOCAL_MODULE := libfoo
LOCAL_MODULE_SUFFIX :=.so
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
LOCAL_MODULE_TAGS := optional
LOCAL_PRELINK_MODULE := false
ifdef TARGET_2ND_ARCH
LOCAL_MULTILIB := both
LOCAL_MODULE_PATH_64 := system/lib64
LOCAL_SRC_FILES_64 := system/lib64/libfoo.so
LOCAL_MODULE_PATH_32 := system/lib
LOCAL_SRC_FILES_32 := system/lib/libfoo.so
else
LOCAL_MODULE_PATH := system/lib
LOCAL_SRC_FILES := system/lib/libfoo.so
endif
include $(BUILD_PREBUILT)
相关问题