別の Android.mk を含めて問題が発生し、依存する共有ライブラリをビルドします。
メイクファイル:
LOCAL_PATH := $(call my-dir)
MY_CORE_PATH := $(abspath $(LOCAL_PATH)/../..)
include $(CLEAR_VARS)
LOCAL_MODULE := Phone
LOCAL_SRC_FILES := phone.cpp
LOCAL_SHARED_LIBRARIES := libCore
include $(BUILD_SHARED_LIBRARY)
include $(MY_CORE_PATH)/Android.mk
これをコンパイルすると、エラーが発生します。
make: *** No rule to make target 'libCore.so' needed by 'libPhone.so'. Stop.
ただし、libCore.so は問題なくビルドされますが、この makefile はそれを正しく参照できません。これを解決する方法についての提案を提供してください。
NDK および Android バージョン: android-ndk-r6、Android ICS 用の API レベル 9 ビルド。
現在、次の変更を加えることで解決できます。
# Modified Android.mk
LOCAL_PATH := $(call my-dir)
MY_CORE_PATH := $(abspath $(LOCAL_PATH)/../..)
# libCore
include $(CLEAR_VARS)
LOCAL_MODULE := Core
include $(MY_CORE_PATH)/Android.mk
include $(CLEAR_VARS)
LOCAL_MODULE := Phone
LOCAL_SRC_FILES := phone.cpp
LOCAL_SRC_FILES += libCore
include $(BUILD_SHARED_LIBRARY)