2021-05-12 14:32:11
Ubuntu 下設定/編譯/執行 Cocos2dx專案
由於專案原因,需要把一個使用cocos2dx的專案放到Linux下執行(在Windows下使用VS編寫,可以正常執行),晚上偵錯了大概3 ~4小時,終於把專案執行了起來。在這裡記錄一下注意的事項,方便自己也能提醒大家不要犯一樣的錯誤。
我使用的是Ubuntu kylin 14.04 , cocos2dx版本是2.2.3。
專案工程檔案如下:
已經包含了cocos2dx的檔案包,自己的專案是在projects中。
projects資料夾內容如下:
Classes資料夾中是專案的原始檔,包括一些.h以及.cpp的原始碼。
Resources資料夾中是專案的資原始檔,包括一些圖片和文字。
而我們重點要關注的就是proj.linux資料夾,他其中的內容如下:
main.cpp是專案的主函數,其中包括了對上層的classes檔案的呼叫。
build.sh以及makefile檔案都是為專案的編譯而作的,是我們重點關注的部分。
我的makefile檔案如下,僅供參考:
EXECUTABLE = TheDemo
INCLUDES = -I../
-I../../
-I../Classes
-I$(COCOS_ROOT)/CocosDenshion/include
-I$(COCOS_ROOT)/extensions/
-I$(COCOS_ROOT)/external/
-I$(COCOS_ROOT)/external/chipmunk/include/chipmunk
//這裡要注意要包含所有專案檔案,對於我來說,就是上面所提到的classes資料夾的內容
SOURCES = main.cpp
../Classes/AppDelegate.cpp
../Classes/HelloWorldScene.cpp
../Classes/eventManager.cpp
../Classes/GameData.cpp
../Classes/GameScene.cpp
../Classes/levelselect.cpp
../Classes/MyNodes.cpp
COCOS_ROOT = ../../..
include $(COCOS_ROOT)/cocos2dx/proj.linux/cocos2dx.mk
//這裡是一些lib檔案以及庫檔案,是參考cocos2dx的樣例專案寫的,就是這裡沒有搞對浪費了很長時間。
SHAREDLIBS += -lcocos2d -lcocosdenshion -lcurl -lpthread
COCOS_LIBS = $(LIB_DIR)/libcocos2d.so $(LIB_DIR)/libcocosdenshion.so
STATICLIBS +=
$(LIB_DIR)/libextension.a
$(LIB_DIR)/libbox2d.a
$(LIB_DIR)/libchipmunk.a
$(TARGET): $(OBJECTS) $(STATICLIBS) $(COCOS_LIBS) $(CORE_MAKEFILE_LIST)
@mkdir -p $(@D)
$(LOG_LINK)$(CXX) $(CXXFLAGS) $(OBJECTS) -o $@ $(SHAREDLIBS) $(STATICLIBS)
$(OBJ_DIR)/%.o: %.cpp $(CORE_MAKEFILE_LIST)
@mkdir -p $(@D)
$(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) $(VISIBILITY) -c $< -o $@
$(OBJ_DIR)/%.o: ../%.cpp $(CORE_MAKEFILE_LIST)
@mkdir -p $(@D)
$(LOG_CXX)$(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) $(VISIBILITY) -c $< -o $@
特別需要注意的是在編譯和連結的過程中如果出現無法對應或者缺少檔案的情況。在專案檔案以及庫檔案確保完整的情況下多半是makefile檔案沒有寫對。沒有包含一些檔案目錄或者缺少lib檔案。如果出現這樣的情況應該注意。
如果命令列操作比較麻煩的話使用IDE是很好的選擇,因為並不是非常了解ubuntu,還在學習過程中,偵錯這個專案使用的是Netbeans 8.0.2,感覺還是比較好用的。
附上一張終於執行成功的截圖:
今後還要更加深入的了解Linux~
6.Run as Android Application 即可,在proj.android的bin目錄下會生成一個apk檔案,至此移植結束。
--------------------------------------分割線 --------------------------------------
新里程碑:Cocos2d-x v3.0 正式版本發布! http://www.linuxidc.com/Linux/2014-04/100858.htm
Cocos2d基礎及基本函數 http://www.linuxidc.com/Linux/2014-02/97382.htm
Cocos2d 如何做 Android 適配 http://www.linuxidc.com/Linux/2013-05/84616.htm
剖析Cocos2d-x之Action實現 http://www.linuxidc.com/Linux/2013-04/82436.htm
Ubuntu下Cocos2d-x開發環境搭建及設定 http://www.linuxidc.com/Linux/2013-03/81876.htm
--------------------------------------分割線 --------------------------------------
相關文章