天天看點

Mac上利用Eclipse實時編譯Cocos2d-x

目前使用較多的Cocos2d-x開發平台是XCode,應該是由于大部分Cocos2d-x開發者都是iOS開發出生。但是當我們将XCode開發的Cocos2d-x工程釋出Android版本時,每次都需要使用ndk将Cocos2d-x的C++代碼編譯一遍,然後再用Eclipse打開,這個過程比較麻煩。于是本人嘗試在Eclipse中實時編譯Cocos2d-x的工程,即可以随時修改或添加java和android代碼後,點選Eclipse中的運作完成編譯。

參考的編譯Cocos2d-x的教程如下:

http://www.xuephp.com/main/detail.php?cid=32787

按以上的教程配置完成後,運作,依然會出現一些錯誤,如下:

錯誤1:

make: *** [clean-box2d_static-armeabi] Error 2

這是ndkr8e的一個bug

解決方案:

修改android-ndk-r8e/build/core/build-binary.mk

$(cleantarget): PRIVATE_CLEAN_FILES := ($(my)OBJS)

為:

$(cleantarget): PRIVATE_CLEAN_FILES :=$($(my)OBJS

錯誤2:

Type Symbol 'cocos2d' could not be resolved

沒有引入Cocos2d-x的源檔案

解決方案:

1.right click project, and select Properties\C/C++ General\Paths and Symbols\Source location. Click Link Folder, check the Link to a folder in the file system checkbox, and browse to the cocos2dxdirectory inside the $COCOS2DX_HOME folder.( the same way as add Classes)

2.right click project and select Properties\C/C++ General\Path and Symbols\GNU C++. Add$(COCOS2DX_HOME)/CocosDenshion/include

錯誤3:

Android NDK: WARNING: APP_PLATFORM android-14 is larger than android:minSdkVersion 8 in ./AndroidManifest.xml

最小SDK版本錯誤

解決方案:

将AndroidManifest.xml檔案中的android:minSdkVersion改為14

解決以上錯誤後,以後修改Java或C++代碼直接在Eclipse中運作即可。但是當我們在Eclipse中建立新的C++類仍然會報錯。因為還需要在工程中的Android.mk檔案中添加相應的C++類名。但是每次添加類都要修改Android.mk會比較麻煩。在這裡提一個解決方案,可以将Android.mk中的檔案改成*.cpp的形式,例如:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := game_shared

LOCAL_MODULE_FILENAME := libgame

FILE_LIST := $(wildcard $(LOCAL_PATH)/../../Classes/Actions/*.cpp)
FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/Constants/*.cpp)
FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/Helpers/*.cpp)
FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/GameObjects/*.cpp)
FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/Scenes/*.cpp)
FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/Singletons/*.cpp)
FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/JNICalls/*.cpp)
FILE_LIST += $(wildcard $(LOCAL_PATH)/../../Classes/*.cpp)

LOCAL_SRC_FILES := helloworld/main.cpp

LOCAL_SRC_FILES += $(FILE_LIST:$(LOCAL_PATH)/%=%)

LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../Classes

LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static cocosdenshion_static

include $(BUILD_SHARED_LIBRARY)

$(call import-module,CocosDenshion/android) $(call import-module,cocos2dx)
           

完成以上步驟,即可實作在Eclipse中實時編譯Cocos2d-x的工程。

個人部落格: http://blog.csdn.net/zhaoxy2850

本文位址: http://blog.csdn.net/zhaoxy2850/article/details/9341295 轉載請注明出處,謝謝!

繼續閱讀