天天看點

Ubuntu 與 cocos2d-x



序:

不知不覺學習Cocos2d-x已經第2個月了,今天有些想法,于是難得停下一直根本停不下來的學習進度,寫點東西,記點事情~

目錄:

1. Linux(Ubuntu)安裝

2. Cocos解壓與建立項目

3. Makefile & make初次編譯

4. QT安裝與配置

5. 使用QT開發Cocos2d-x項目

6. QT開發Cocos2d-x的一些關鍵問題

7. summary

資源:

VMware 10.
Ubuntu 14.10 .iso tieba.baidu.com/p/3584274583
QT for Linux www.qt.io/download/ 
Cocos2d-x.zip Cocos2d-x.org/download/  

 正文:

1. Ubuntu的虛拟機安裝:傻瓜式安裝即可;

注意:安裝時請關閉網絡連接配接,由于安裝會自動從網上下載下傳一些檔案,而預設的源速度極慢,運氣好2個小時安裝好,運氣不好1天都搞不定。

2. Cocos2d-x解壓:

可解壓至你喜歡的位置,然後進入目錄:cd到你的cocos2dx目錄/tools/project-creator

Chmod +x * 把檔案設為可執行,否則無效,ls檢視是否可執行?

Ubuntu 與 cocos2d-x

技巧1:

打開終端視窗後,輸入指令:apt-get install nautilus-open-terminal

系統即會自動安裝,安裝完成後,登出一下系統,重新運作後,就會發現右鍵中多了打開終端的選項了。

2. 建立項目:

Ubuntu 與 cocos2d-x

Linux下Python是預設安裝的,可以直接到控制台(終端)-terminal 建立:

注意:1. Linux下執行需要前面加上“./”

  2. 三段:項目,包,語言

3. 初次編譯:

到cocos2d-x的根目錄:檢視Makefile檔案
Ubuntu 與 cocos2d-x

編譯Release和Debug:

-make

-make DEBUG=1

然後就報錯了:

首先是找不到GL/glfw.h

.......

這是因為沒有安裝支援的軟體造成的~ sudo apt-get install libglfw-dev

安裝支援軟體:

sudo apt-get update

sudo apt-get install git ssh vim ctags qt-sdk build-essential libx11-dev libxmu-dev libglu1-mesa-dev libgl2ps-dev libxi-dev libglfw-dev libzip-dev libcurl4-gnutls-dev  libfontconfig1-dev libsqlite3-dev libglew*-dev openjdk-7-jdk lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6

由于中間如果有錯會跳出,建議是1~2個一起apt-get install

有些可能沒有裝,例如:

再次make又報錯:lcurl

于是sudo apt-get install  libcurl4-gnutls-dev  和libfontconfig1-dev

利用 sudo apt-cache search 尋找軟體包的方法很重要

說明:這是在Ubuntu上開發cocos2d-x上阻礙前進的關鍵的第一步

4. QT安裝與配置

Ubuntu 與 cocos2d-x
Ubuntu 與 cocos2d-x
點選綠箭頭建構,會彈出:
Ubuntu 與 cocos2d-x
Hello World出現~
Ubuntu 與 cocos2d-x

5. 使用QT開發Cocos2d-x項目

添加C++類
Ubuntu 與 cocos2d-x

簡單寫一個場景,并把AppDelegate.cpp中的場景由HelloWorld替換為GameStart

建構出錯:

:-1: error: collect2: error: ld returned 1 exit status

這是在Ubuntu上開發cocos2d-x上阻礙前進的關鍵的第二步

建構出錯是ld-連結的問題,這個在Windows下用VS是不用去管的,但在Linux下需要去更改Makefile的檔案

類似于移植安卓時需要把新的.cpp檔案加入到.mk檔案~

Ubuntu 與 cocos2d-x
再次建構OK

6. QT開發Cocos2d-x的一些關鍵問題

在使用ControlSwitch或9妹圖等 來源于extension,

要包含頭檔案及使用命名空間,但一運作就報錯:

6: error: cocos-ext.h: 沒有那個檔案或目錄

 #include "cocos-ext.h"

                       ^

Ubuntu 與 cocos2d-x
這是在Ubuntu上開發cocos2d-x上阻礙前進的關鍵的第三步

在VS上的解決方法網上有很多資料,但Linux下使用QT查不到。。。。。。

在這個問題上自己研究了幾個晚上,試着改Makefile,試着改QT-->選項,卻一直沒有找到解決方法。

直到昨晚我看視訊,終于有講到:

把samples\cpp\testcpp\proj.linux\Makefile拿出來與目前的做對比:
Ubuntu 與 cocos2d-x

1. 包含 include 缺少,找不到路徑

2. 把INCLUDES全複制過來,替換掉目前檔案的,再運作(報ld錯誤),這是沒有把庫連結上,需要把STATICLIBS也複制過來,但注意放的位置,放到紅箭頭位置,放到綠箭頭就還是報ld錯誤

3. 如果需要聲音庫cocosDenshion,那麼SHAREDLIBS和COCOS_LIBS也加進來

7. 小結

Windows + VS Ubuntu + QT
VS安裝包大:>3G QT安裝包 600M
VS安裝時間長達30分鐘以上 QT安裝5分鐘
VS收費或破解版(社群版) QT 開源版免費
VS 需要VAX小番茄助手(收費或破解) QT 代碼提示等接近VS+VAX的水準
VS的.h 與 .cpp切換:alt+o QT切換頭檔案 :F4
VS新加類後直接編譯 新加 .cpp檔案必須在Makefile中加入
VS使用其它庫不用特殊處理 需要在Makefile中更新INCLUDE和LIB

快捷:

在一個分欄中,顯示目前檔案對應的頭檔案或.cpp檔案

先按下^E 再F4

F12轉到定義 F2
Shift +F2 在函數定義、實作中切換
列選取 alt+選擇 列選取同VS
預設添加的檔案名都是小寫的,把勾去掉!
Ubuntu 與 cocos2d-x