Android - NDK LOCAL_SRC_FILES для готовой библиотеки должен содержать только один элемент - PullRequest
0 голосов
/ 05 июля 2019

Я использую библиотеку 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

Ошибка здесь:

LOCAL_SRC_FILES для готовой библиотеки должен содержать только один пункт

1 Ответ

0 голосов
/ 09 июля 2019

Одна библиотека - это один модуль.Вам нужно сделать несколько модулей.

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
...