我在我的应用程序上使用 C++ 库。该库在以前的版本中会生成一个 .a
文件。我的 Android.mk 文件如下:
include $(CLEAR_VARS)
LOCAL_MODULE := libmylib
ifeq ($(TARGET_ARCH_ABI),x86)
LOCAL_SRC_FILES := path-to/libmylib.a
else
LOCAL_SRC_FILES := path-to/libmylib.a
endif
include $(PREBUILT_STATIC_LIBRARY)
.......
LOCAL_STATIC_LIBRARIES += mylib
.......
但是现在,我构建了它,它生成了 3 个 .so
文件。
如何添加包含多个 .so
源的模块?
以下设置无法编译。
include $(CLEAR_VARS)
LOCAL_MODULE := libmylib
LOCAL_SRC_FILES := path-to/libvmylib_shared.so \ path-to/libvmylib_base.so \ path-to/libvmylib_cr.so
include $(PREBUILT_SHARED_LIBRARY)
.....
LOCAL_SHARED_LIBRARIES += mylib
错误在这里:
The LOCAL_SRC_FILES for a prebuilt library should only contain one item
最佳答案
一个库就是一个模块。您需要制作多个模块。
include $(CLEAR_VARS)
LOCAL_MODULE := libvmylib_shared
LOCAL_SRC_FILES := path-to/libvmylib_shared.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvmylib_base
LOCAL_SRC_FILES := path-to/libvmylib_base.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libvmylib_cr
LOCAL_SRC_FILES := path-to/libvmylib_cr.so
include $(PREBUILT_SHARED_LIBRARY)
...
LOCAL_SHARED_LIBRARIES := libvmylib_shared libvmylib_base libvmylib_cr
关于Android - NDK 预构建库的 LOCAL_SRC_FILES 应仅包含一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56901488/