如何解决在Android构建系统中包括预构建的静态库
| 我需要基于预构建的静态库构建共享库。 我的makefile src / android / external / mycode / Android.mk:LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_ARM_MODE := arm
LOCAL_MODULE := libMyStatic
LOCAL_SRC_FILES := libStatic.a
include $(PREBUILT_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := eng
LOCAL_ARM_MODE := arm
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE := libMyShared
LOCAL_WHOLE_STATIC_LIBRARIES := libMyStatic
include $(BUILD_SHARED_LIBRARY)
我通过这样做来构建它:mmm external/mycode
并得到错误:
make: *** No rule to make target `out/target/product/generic/obj/STATIC_LIBRARIES/libMyStatic_intermediates/libMyStatic.a\',needed by `out/target/product/generic/obj/SHARED_LIBRARIES/libMyShared_intermediates/LINKED/libMyShared.so\'. Stop.
make: Leaving directory `/home/test/src/android\'
如果我手动执行以下操作,然后再次运行mmm,它将起作用:
cp external/mycode/libStatic.a out/target/product/generic/obj/STATIC_LIBRARIES/libMyStatic_intermediates/libMyStatic.a
如果我创建一个NDK项目并使用此Android.mk文件,则我认为它在调用ndk-build脚本时会立即生效。因此,问题与我使用Android Build系统时未创建libMyStatic.a文件并将其复制到中间文件夹有关。
谁能告诉我要使构建系统将静态库复制到中间文件夹所需的设置吗?
解决方法
修改您的mk文件
\"LOCAL_WHOLE_STATIC_LIBRARIES := libMyStatic\"
至
\"LOCAL_LDFLAGS += -lMyStatic
,尝试像这样构建您的静态库。
include $(CLEAR_VARS)
LOCAL_MODULE := libMyStatic
LOCAL_MODULE_CLASS := STATIC_LIBRARIES
LOCAL_MODULE_SUFFIX := .a
LOCAL_SRC_FILES := libMyStatic.a
include $(BUILD_PREBUILT)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。