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 選項