В Android NDK я пытаюсь собрать разделяемую библиотеку из небольших «модулей» — статических библиотек. Например:
Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := module1
LOCAL_SRC_FILES := module1.c
include $(PREBUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := module2
LOCAL_SRC_FILES := module2.c
include $(PREBUILD_STATIC_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := main-module
LOCAL_STATIC_LIBRARIES := module1 \ module2
include $(BUILD_SHARED_LIBRARY)
Но функции из модуля1 и модуля2 не видны, когда я пытаюсь вызвать их из общей библиотеки (главный модуль).
Функции из module1.c и module2.c можно экспортировать, потому что я могу вызвать их напрямую, если, например, соберу такую библиотеку:
include $(CLEAR_VARS)
LOCAL_MODULE := module1
LOCAL_SRC_FILES := module1.c
include $(BUILD_SHARED_LIBRARY)
Как я могу пометить функции из статических библиотек видимыми в общей библиотеке (как описано в первом примере). Могут ли потребоваться какие-либо флаги компилятора/компоновщика?