cocos2d-x的新建工程项目重新编译整个引擎,在windows系统下好说,只需要把库指定。android和IOS如果也是每个项目都生成引擎,游戏项目多硬盘空间也吃紧。适用cocos2d3.13 ,3.5版不通过
- 首先找到一个cocos2d-x的测试项目(如cpp_test),进行一次编译。完成后,在proj.android/obj/local目录下可以找到中间过程中生成的所有静态库文件。把这些静态库文件(带上ABI目录)复制出来,objs-debug和objs文件夹可删除,放到一个新的目录(如:cclib)中。
- 在cclib中创Android.mk文件,文件内容见代码附1.
- 新建Windows环境变量 CC_SRC_ROOT 为cocos2d源码目录(即cocos与external的上层目录)
- 在编译你的项目时依赖cclib即可,不需要依赖cocos2d目录下的Android.mk 附2
附1(cclib/Android.mk)
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := cc_static LOCAL_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)/extensions \ $(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 -fexceptions LOCAL_CPPFLAGS := -Wno-deprecated-declarations -Wno-extern-c-compat LOCAL_EXPORT_CFLAGS := -DUSE_FILE32API -fexceptions LOCAL_EXPORT_CPPFLAGS := -Wno-deprecated-declarations -Wno-extern-c-compat LOCAL_EXPORT_LDLIBS := -lGLESv2 \ -llog \ -landroid \ -lGLESv1_CM \ -lEGL \ -lOpenSLES # define the macro to compile through support/zip_support/ioapi.c LOCAL_WHOLE_STATIC_LIBRARIES := cocos_freetype2_static LOCAL_WHOLE_STATIC_LIBRARIES += cocos_png_static LOCAL_WHOLE_STATIC_LIBRARIES += cocos_jpeg_static LOCAL_WHOLE_STATIC_LIBRARIES += cocos_tiff_static LOCAL_WHOLE_STATIC_LIBRARIES += cocos_webp_static LOCAL_WHOLE_STATIC_LIBRARIES += cocos_chipmunk_static LOCAL_WHOLE_STATIC_LIBRARIES += cocos_zlib_static LOCAL_WHOLE_STATIC_LIBRARIES += cocos_curl_static LOCAL_WHOLE_STATIC_LIBRARIES += websockets_static LOCAL_WHOLE_STATIC_LIBRARIES += flatbuffers_static LOCAL_WHOLE_STATIC_LIBRARIES += libaudioengine_static LOCAL_WHOLE_STATIC_LIBRARIES += libbox2d_static LOCAL_WHOLE_STATIC_LIBRARIES += libbullet_static LOCAL_WHOLE_STATIC_LIBRARIES += libcocos2d_static LOCAL_WHOLE_STATIC_LIBRARIES += libcocos2dandroid_static LOCAL_WHOLE_STATIC_LIBRARIES += libcocos2dxinternal_static LOCAL_WHOLE_STATIC_LIBRARIES += libcocos3d_static LOCAL_WHOLE_STATIC_LIBRARIES += libcocosbuilder_static LOCAL_WHOLE_STATIC_LIBRARIES += libcocosdenshion_static LOCAL_WHOLE_STATIC_LIBRARIES += libcocostudio_static #LOCAL_WHOLE_STATIC_LIBRARIES += libcpufeatures_static LOCAL_WHOLE_STATIC_LIBRARIES += libextension_static LOCAL_WHOLE_STATIC_LIBRARIES += libnetwork_static LOCAL_WHOLE_STATIC_LIBRARIES += librecast_static LOCAL_WHOLE_STATIC_LIBRARIES += libspine_static LOCAL_WHOLE_STATIC_LIBRARIES += libui_static include $(BUILD_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := flatbuffers_static LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/flatbuffers.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libaudioengine_static LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libaudioengine.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libbox2d_static LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libbox2d.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libbullet_static LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libbullet.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libcocos2d_static LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcocos2d.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libcocos2dandroid_static LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcocos2dandroid.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libcocos2dxinternal_static LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcocos2dxinternal.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libcocos3d_static LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcocos3d.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libcocosbuilder_static LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcocosbuilder.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libcocosdenshion_static LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcocosdenshion.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libcocostudio_static LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcocostudio.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libcpufeatures_static LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libcpufeatures.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libextension_static LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libextension.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libnetwork_static LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libnetwork.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := librecast_static LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/librecast.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libspine_static LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libspine.a include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libui_static LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libui.a include $(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)
附2(cpp-empty-test)
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := cpp_empty_test_shared LOCAL_MODULE_FILENAME := libcpp_empty_test LOCAL_ARM_MODE := arm LOCAL_SRC_FILES := main.cpp \ ../../Classes/AppDelegate.cpp \ ../../Classes/HelloWorldScene.cpp LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes \ $(LOCAL_PATH)/../../../../extensions \ $(LOCAL_PATH)/../../../.. \ $(LOCAL_PATH)/../../../../cocos/editor-support #LOCAL_STATIC_LIBRARIES := cocos2dx_static LOCAL_WHOLE_STATIC_LIBRARIES := cc_static include $(BUILD_SHARED_LIBRARY) #$(call import-module,.) $(call import-module,cclib)
参考:http://www.cnblogs.com/leaving/p/5362918.html