Мне нужно создать общую библиотеку на основе предварительно созданной статической библиотеки. Мой make-файл 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 . Итак, проблема как-то связана с тем, что файл libMyStatic.a не создается и не копируется в промежуточную папку, когда я использую систему сборки Android. Может ли кто-нибудь сказать мне, что мне нужно настроить, чтобы система сборки скопировала статическую библиотеку в промежуточную папку?