手工輸入項目須要編譯的cpp文件到Android.mk裏的缺點android
1)繁瑣,若是cpp文件不少,簡直沒法忍受git
2)手工輸入過程當中容易出現錯誤github
3)若是cpp文件更更名稱,須要修改Android.mk文件shell
。。。。等等ide
下面的樣例代碼轉自:https://gist.github.com/andyque/6060595spa
- <span style="font-family:SimHei;font-size:18px;">LOCAL_PATH := $(call my-dir)
-
- include $(CLEAR_VARS)
-
- LOCAL_MODULE := game_shared
-
- LOCAL_MODULE_FILENAME := libgame
-
- #traverse all the directory and subdirectory
- define walk
- $(wildcard $(1)) $(foreach e, $(wildcard $(1)/*), $(call walk, $(e)))
- endef
-
- #traverse Classes Directory
- ALLFILES = $(call walk, $(LOCAL_PATH)/../../Classes)
-
- FILE_LIST := hellocpp/main.cpp
- FILE_LIST += $(filter %.cpp, $(ALLFILES))
-
- FILE_INCLUDES := $(shell find $(LOCAL_PATH)/../../Classes -type d)
-
- #source file will be compiled
- LOCAL_SRC_FILES := $(FILE_LIST:$(LOCAL_PATH)/%=%)
-
-
- LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../external/Box2D/ \
- $(FILE_INCLUDES) \
-
-
-
- LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static cocos_extension_static box2d_static
-
- include $(BUILD_SHARED_LIBRARY)
-
- $(call import-module,CocosDenshion/android) \
- $(call import-module,cocos2dx) \
- $(call import-module,extensions) \
- $(call import-module,external/Box2D)</span>