Cocos2d-x 學習筆記:linux環境下開發

ubuntu12.04 + cocos2dx 2.2.3linux

1、編譯問題:sql

關於linux的編譯問題,有官方的幫助文檔:ubuntu

http://www.cocos2d-x.org/docs/manual/framework/native/getting-started/setting-up-development-environments/linux-environment-setup/zhcurl

基本信息

Linux平臺開發能夠經過Eclipse(及其管理make系統)或普通Makefiles完成。本文介紹用Makefile進行開發的方法。ui

Cocos2d-x引擎的Linux編譯文件大部分用於基於Debian/Ubuntu的系統。其餘系統上使用應該也沒什麼問題,只是會因系統而已。this

編譯cocos2d-x時須要安裝如下資源包:url

 g++ libx11-dev libxmu-dev libglu1-mesa-dev libgl2ps-dev libxi-dev 
 libglfw-dev libzip-dev libcurl4-gnutls-dev libfontconfig1-dev libsqlite3-dev libglew*-dev

運行頂級(top level)腳本「make-all-linux-project.sh」會檢查是否安裝這些資源包,若未安裝,則會爲你安裝這些資源。spa

編譯

執行「make-all-linux-project.sh」會從新編譯(clean build)Debug及Release配置下的全部項目編譯。若只需編譯一種配置,你能夠只用「make」命令,例如:sqlite

$ make -j5 DEBUG=1

該命令會編譯在Debug模式下的全部cocos2d-x庫及示例。編譯後的庫在「lib/linux/Debug」文件夾。若是隻要編譯一個庫或者一個示例,則只需在proj.linux folder文件夾運行「make」編譯那個庫或示例便可。如:ip

$ cd samples/Cpp/TestCpp/proj.linux && make -j5 DEBUG=1

爲了大幅提高編譯速度,請記得在命令中增長「-j + 自變數(如5)」。

運行

現有makefiles包含一個「run」(運行)目標,可用於運行可執行的build編譯文件。

$ cd samples/Cpp/TestCpp/proj.linux && make -j5 DEBUG=1 run

建立新項目

新建項目簡單的方法就是將「samples/Cpp/HelloCpp/proj.linux」文件夾複製到你的項目。複製後須要相應地編輯Makefile的部份內容(至少要編輯SOURCES資源部分)。若是在cocos2d-x目錄樹之外編譯,則須要在Makefile文件裏設置$COCOS2DX_ROOT路徑或者在環境變量中加入該路徑。

 

注意:其實關鍵在於Makefile文件的編寫(暫時的我還不太會),經過Makefile很方便的設置路徑之類的東西,而後就能夠直接編譯運行了。

當碰見了錯誤:

../Classes/ExtensionsTest/CocoStudioArmatureTest/ArmatureScene.cpp:1062:27: 錯誤: ‘maxx’ may be used uninitialized in this function [-Werror=maybe-uninitialized] CXX obj/release/Classes/ExtensionsTest/CocoStudioGUITest/UILabelBMFontTest/UILabelBMFontTest.o

../Classes/ExtensionsTest/CocoStudioArmatureTest/ArmatureScene.cpp:1062:27: 錯誤: ‘miny’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
../Classes/ExtensionsTest/CocoStudioArmatureTest/ArmatureScene.cpp:1062:27: 錯誤: ‘minx’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
CXX obj/release/Classes/ExtensionsTest/CocoStudioGUITest/UILabelTest/UILabelTest.o
cc1plus: all warnings being treated as errors
make[1]: *** [obj/release/Classes/ExtensionsTest/CocoStudioArmatureTest/ArmatureScene.o] Error 1
make[1]: *** Waiting for unfinished jobs....

參考網址裏的作法:http://www.cocos2d-x.org/forums/6/topics/45726?r=45846

彷佛是由於gcc/g++的版本太高,使得某些文件沒法編譯成功。

我使用了最簡便的解決方式,直接刪除cocos2dx/proj.linux/cocos2dx.mk 行 5 和 行 6 的 -Werror 選項

相關文章
相關標籤/搜索