在将静态库与Android平台上的现有共享库(Lollypop)集成时,我遇到了问题
我正在尝试在Android L中添加一个静态库(.a),它将链接到共享模块(.so)。 该模块已经存在(即已经构建),我打算将静态库链接到该模块。
代码结构如下:: -
-ABC
--xxx
--yyy
--zzz [newly added folder]
---Android.mk [newly added]
---foo.c [wrapper file for the library along with header files]
---newlib.a [the actual static lib being discussed]
--Android.mk [This is already present and builds a library which incorporates xxx and yyy say the name of this be oldlib.so]
现在我添加了zzz文件夹,其中包含一个静态库(newlib.a)和包装器C文件(foo.c).zzz还包含一个Android.mk来构建自己。
请检查Android.mk
的语法Newly Added Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := newlib
LOCAL_EXPORT_LDLIBS := -lnewlib
LOCAL_MODULE_SUFFIX := .a
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := foo.c
LOCAL_SRC_FILES += newlib.a
include $(PREBUILT_STATIC_LIBRARY)
已存在的Android.mk的语法[我突出显示我为新添加的代码所做的更改]
NEW_LOCAL_PATH := $(call my-dir)
include $(NEW_LOCAL_PATH)/zzz/Android.mk
LOCAL_PATH := $(NEW_LOCAL_PATH)
LOCAL_LDFLAGS := $(LOCAL_PATH)/zzz/newlib.a
LOCAL_WHOLE_STATIC_LIBRARIES := newlib
我的上述配置导致生成错误,并显示以下错误消息: - make:
*** No rule to make target 'out/target/product/alpha/obj/STATIC_LIBRARIES/newlib_intermediates/export_include ',needed
by 'out/target/product/alpha/obj/SHARED_LIBRARIES/oldlib_intermediates/import_include'. stop
有人能说出同样可能的原因吗? 如果需要更多细节,请随时询问。 感谢。