3.终极解决方案
上边的解决方案用到了wildcard这个关键子,虽然不明白这是神马东西,但肯定可这个有关!于是经过一番google之后,便有了下面的这个:
将
LOCAL_SRC_FILES := hellocpp/main.cpp \ ../../Classes/AppDelegate.cpp \ ../../Classes/HelloWorldScene.cpp LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
替换为:
# 遍历目录及子目录的函数 define walk $(wildcard $(1)) $(foreach e,$(wildcard $(1)/*),$(call walk,$(e))) endef # 遍历Classes目录 ALLFILES = $(call walk,$(LOCAL_PATH)/../../Classes) FILE_LIST := hellocpp/main.cpp # 从所有文件中提取出所有.cpp文件 FILE_LIST += $(filter %.cpp,$(ALLFILES)) LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%) LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes
哈哈哈,这样我们只用在项目最开始的时候改变Android.mk文件就以后再也不用碰啦!