【发布时间】:2015-01-27 13:41:02
【问题描述】:
我需要基于预构建的静态库构建共享库。 我的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文件并复制到中间文件夹有关。 谁能告诉我需要设置什么才能使构建系统将静态库复制到中间文件夹?
【问题讨论】:
-
我遇到了类似的问题。你解决了吗?你介意和我分享你的方法吗?thx
-
也许这可以帮助你:[使用 Android.mk 链接预构建的共享库][1] [1]:stackoverflow.com/questions/14322766/…