標籤:
在用cocos2d-x做Android開發時,每次clean後都會需要再次編譯coco2d-x的庫,十分耗時。
這裡給出一個直接使用靜態庫而不用每次都編譯源碼的方法:
1\ 首先找到一個cocos2d-x的測試專案(如cpp_test),進行一次編譯。完成後,在proj.android/obj/local目錄下可以找到中間過程中產生的所有靜態庫檔案。
把這些靜態庫檔案(帶上ABI目錄)複製出來,放到一個新的目錄(如:cclib)中。
2\ 在cclib中創Android.mk檔案,檔案內容見代碼附1.
3\ 定義環境變數 CC_SRC_ROOT 為cocos2d源碼目錄(即cocos與external的上層目錄)
在編譯你的項目時依賴cclib即可,不需要依賴cocos2d目錄下的Android.mk
附cclib/Android.mk內容:
LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := cc_staticLOCAL_MODULE_FILENAME := libcc LOCAL_EXPORT_C_INCLUDES := $(CC_SRC_ROOT)/cocos $(CC_SRC_ROOT)/cocos/. $(CC_SRC_ROOT)/cocos/.. $(CC_SRC_ROOT)/cocos/platform $(CC_SRC_ROOT)/cocos/base $(CC_SRC_ROOT)/external $(CC_SRC_ROOT)/external/tinyxml2 $(CC_SRC_ROOT)/external/unzip $(CC_SRC_ROOT)/external/chipmunk/include/chipmunk $(CC_SRC_ROOT)/external/xxhash $(CC_SRC_ROOT)/external/nslog $(CC_SRC_ROOT)/external/poly2tri $(CC_SRC_ROOT)/external/poly2tri/common $(CC_SRC_ROOT)/external/poly2tri/sweep $(CC_SRC_ROOT)/cocos/platform/android $(CC_SRC_ROOT)/cocos/audio/include $(CC_SRC_ROOT)/external/curl/include/android $(CC_SRC_ROOT)/external/websockets/include/android $(CC_SRC_ROOT)/cocos/editor-support $(CC_SRC_ROOT)/external/Box2D $(CC_SRC_ROOT)/external/flatbuffers $(CC_SRC_ROOT)/external LOCAL_CFLAGS := -DUSE_FILE32API -fexceptionsLOCAL_CPPFLAGS := -Wno-deprecated-declarations -Wno-extern-c-compatLOCAL_EXPORT_CFLAGS := -DUSE_FILE32API -fexceptionsLOCAL_EXPORT_CPPFLAGS := -Wno-deprecated-declarations -Wno-extern-c-compatLOCAL_EXPORT_LDLIBS := -lGLESv2 -llog -landroid -lGLESv1_CM -lEGL -lOpenSLES# define the macro to compile through support/zip_support/ioapi.cLOCAL_WHOLE_STATIC_LIBRARIES := cocos_freetype2_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocos_png_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocos_jpeg_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocos_tiff_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocos_webp_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocos_chipmunk_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocos_zlib_staticLOCAL_WHOLE_STATIC_LIBRARIES += cocos_curl_staticLOCAL_WHOLE_STATIC_LIBRARIES += websockets_staticLOCAL_WHOLE_STATIC_LIBRARIES += flatbuffers_staticLOCAL_WHOLE_STATIC_LIBRARIES += libaudioengine_staticLOCAL_WHOLE_STATIC_LIBRARIES += libbox2d_staticLOCAL_WHOLE_STATIC_LIBRARIES += libcocos2d_staticLOCAL_WHOLE_STATIC_LIBRARIES += libcocos2dandroid_staticLOCAL_WHOLE_STATIC_LIBRARIES += libcocos2dxinternal_staticLOCAL_WHOLE_STATIC_LIBRARIES += libcocos3d_staticLOCAL_WHOLE_STATIC_LIBRARIES += libcocosbuilder_staticLOCAL_WHOLE_STATIC_LIBRARIES += libcocosdenshion_staticLOCAL_WHOLE_STATIC_LIBRARIES += libcocostudio_staticLOCAL_WHOLE_STATIC_LIBRARIES += libextension_staticLOCAL_WHOLE_STATIC_LIBRARIES += libnetwork_staticLOCAL_WHOLE_STATIC_LIBRARIES += libspine_staticLOCAL_WHOLE_STATIC_LIBRARIES += libui_staticinclude $(BUILD_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := flatbuffers_staticLOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/flatbuffers.ainclude $(PREBUILT_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := libaudioengine_staticLOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libaudioengine.ainclude $(PREBUILT_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := libbox2d_staticLOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libbox2d.ainclude $(PREBUILT_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := libcocos2d_staticLOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcocos2d.ainclude $(PREBUILT_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := libcocos2dandroid_staticLOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcocos2dandroid.ainclude $(PREBUILT_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := libcocos2dxinternal_staticLOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcocos2dxinternal.ainclude $(PREBUILT_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := libcocos3d_staticLOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcocos3d.ainclude $(PREBUILT_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := libcocosbuilder_staticLOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcocosbuilder.ainclude $(PREBUILT_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := libcocosdenshion_staticLOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcocosdenshion.ainclude $(PREBUILT_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := libcocostudio_staticLOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcocostudio.ainclude $(PREBUILT_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := libcpufeatures_staticLOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcpufeatures.ainclude $(PREBUILT_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := libextension_staticLOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libextension.ainclude $(PREBUILT_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := libnetwork_staticLOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libnetwork.ainclude $(PREBUILT_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := libspine_staticLOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libspine.ainclude $(PREBUILT_STATIC_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE := libui_staticLOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libui.ainclude $(PREBUILT_STATIC_LIBRARY)#==============================================================$(call import-module,freetype2/prebuilt/android)$(call import-module,png/prebuilt/android)$(call import-module,zlib/prebuilt/android)$(call import-module,jpeg/prebuilt/android)$(call import-module,tiff/prebuilt/android)$(call import-module,webp/prebuilt/android)$(call import-module,chipmunk/prebuilt/android)$(call import-module,curl/prebuilt/android)$(call import-module,websockets/prebuilt/android)
使用cocos2d-x c++ Android靜態庫