1. 加入了新project, 出現
make: *** No rule to make target `external/not_my_folder/my_project.cpp', needed by `out/target/product/flo/obj/EXECUTABLES/myproject_intermediates/myproject.o'. Stop.
make: Leaving directory `/opt/working/krt16s'
原因
Android.mk 未放入 LOCAL_PATH, 所以用了前一個project 的 LOCAL_PATH 去搜尋源碼
Note: build 可執行檔的Android.mk設定
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
<source files> \
LOCAL_C_INCLUDES:= \
LOCAL_MODULE:= <output name>
$(TOP)/frameworks/<headers folder>
LOCAL_SHARED_LIBRARIES:= \
<librarys>
LOCAL_MODULE_TAGS:= optional
include $(BUILD_EXECUTABLE)
2. 在同一個 Android.mk 要make 兩個module, 一樣出現 No rule to make target 的錯誤.
==> 第二個project 不要加入 LOCAL_PATH:= $(call my-dir)
我的成功範例:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
<source>.cpp \
LOCAL_SHARED_LIBRARIES:= \
libbinder \
liblog \
LOCAL_MODULE:= <project 1>
LOCAL_MODULE_TAGS:= optional
include $(BUILD_EXECUTABLE)
###############################################
include $(CLEAR_VARS)
LOCAL_SRC_FILES:= \
<source>.cpp \
LOCAL_CFLAGS := -DCONFIG_AS_CLIENT
LOCAL_SHARED_LIBRARIES:= \
libbinder \
liblog \
LOCAL_MODULE:= <project 2>
LOCAL_MODULE_TAGS:= optional
include $(BUILD_EXECUTABLE)