Android - NDK 预构建库的 LOCAL_SRC_FILES 应仅包含一项

标签 android android-ndk shared-libraries static-libraries android.mk

我在我的应用程序上使用 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/

相关文章:

android - 如何自动应用父级的样式?

android - 将.so文件添加到android studio时出现UnsatisfiedLinkError

android-ndk - 使用 android-ndk : There are no modules to build in this project 构建时出错

android - 为 Android 编译 ffmpeg 时遇到问题

php - 从 C 调用 PHP 运行时函数作为链接库

在我的 malloc 共享库中找不到我的段错误

java - Tomcat 8.0.32 - 更新了网络应用程序未使用的共享库

Android - 使 AlertDIalog 按钮大小统一

java - 返回java中函数计算的中间结果

android - 将 kankan.wheel 添加到 Android Studio