Windows7 64位系統搭建Cocos2d-x 2.2.1最新版以及Android交叉編譯環境(詳細教程)

轉載博文:http://blog.csdn.net/sttyytw/article/details/17005263

用來學習

參考博文:

http://www.cnblogs.com/lhming/archive/2012/06/27/2566460.html
http://www.cnblogs.com/lhming/archive/2012/06/27/2566467.html
http://www.douban.com/note/229610750/
http://www.cnblogs.com/dekins/archive/2012/08/22/2650131.html


本文地址:


http://blog.csdn.net/sttyytw/article/details/17005263


如果轉載,請註明出處!


本文搭建環境


系統:win7 64位 旗艦版 原版
軟件:只裝了系統的半裸機


大家只要按照步驟耐心操作,環境的搭建就不會產生一些莫名其妙的錯誤


預備下載的軟件(爲了方便,軟件安裝包請放在一個文件夾下)

請大家先行下載,但不要安裝,一步一步的來


1、cocos2d-x2.2.1  2013年11月19日更新


cocos2d-x遊戲引擎開發環境,大家都懂的


下載地址:(這個不用說了吧,搭建cocos2d-x的平臺會不知道哪裏下代碼?好吧,還是貼上)


http://www.cocos2d-x.org/download


SouthEast












2、VisualStudio 2012


cocos2d-x需要的IDE編譯環境,網上隨便下,這裏提供一個下載地址


下載地址:http://pan.baidu.com/share/link?shareid=90168&uk=2769186556


密鑰:YKCW6-BPFPF-BT8C9-7DCTH-QXGWC


3、python


cocos2d-x2.0版本以後用python腳本來創建工程,所以需要python環境


下載地址:http://www.python.org/download/


注意:請下載python2.7.6  64位版本,不要下3.3的版本


SouthEast



以上是組建cocos2d-x編譯環境所需要的軟件,接下來是android交叉編譯所需要的軟件


4、java


java環境是必須的,這個在官網上下載即可,注意要選擇64位版本


下載地址:http://www.java.com/zh_CN/download/manual.jsp


SouthEast



5、Android SDK


這個是android交叉編譯必須的IDE環境,內含Eclipse


下載地址:http://developer.android.com/sdk/index.html


SouthEast



6、Android NDK


android交叉編譯時,對C/C++代碼的解釋編譯工具


下載地址:http://developer.android.com/tools/sdk/ndk/index.html


SouthEast



7、cygwin


對cocos2d-x本地C/C++代碼的解釋編譯工具


下載地址:http://cygwin.com/install.html


SouthEast



8、EditPlus

這是個文本編輯軟件,方便我們對之後的sh文件進行編輯


下載地址:http://www.pc6.com/softview/SoftView_36775.html


注意:sh等linux文件在用windows記事本打開時,輸入的回車格式與linux回車格式不同,會造成錯誤。


這個軟件是推薦大家使用的,大家可以自行選擇


至此我們所需要的軟件都已經準備完畢,接下來可以開始正式搭建環境了

———————————————————————————————————


1、安裝VisualStudio2012


對VS2012_ULT_chs.iso文件進行解壓,安裝,對安裝程序一路狂點。。。。。


像這種編程環境最好裝在系統盤內,免得之後出各種莫名其妙的錯誤。等了一段時間,終於安裝完畢。

2、用VisualStudio組建cocos2d-x的Windows編譯環境


將下載好的cocos2d-x-2.2.1放在英文路徑下,注意,英文路徑不要有空格


例如:我的目錄配置D:\study\cocos2d-x\cocos2d-x-2.2.1


在cocos2d-x-2.2.1目錄下找到Visual Studio2012的sln文件,打開

SouthEast

等待Visual Studio加載解決方案

在解決方案上點右鍵,然後點生成解決方案,或者按F7,等待vs編譯生成本地obj

SouthEast

第一次編譯會比較慢,耐心等待一下

SouthEast


等了將近10分鐘,終於編譯好了,我們來嚐嚐鮮,試着運行HelloCpp,看到那個熟悉的HelloWorld界面


在HelloCpp項目上面點擊右鍵,然後選擇調試->啓動新實例


SouthEast


接着程序開始自動編譯了,運氣好的話應該可以看到牛X的HelloWorld的界面了


SouthEast


在這裏我遇到了一個小問題,由於是新系統,還沒有安裝顯卡驅動,所以編譯時提示OpenGL的版本太低,這時候只需要用驅動精靈或是類似的驅動軟件更新一下自己的顯卡驅動就沒有問題了。



3、創建自己的HelloWorld工程


接下來就要創建自己的Cocos2d-x HelloWorld項目,這是所有遊戲編寫的開端。好的,這時我們就要用到python環境了。安裝我們已經下載好的python-2.7.6.amd64,選擇默認路徑。


SouthEast


安裝完畢,我們接下來使用python命令創建自己的cocos2d-x工程。


首先需要設置python的系統環境,由於剛纔是默認安裝,所以python的安裝路徑爲C:\Python27\,大家可以手動在開始->計算機(在上面點右鍵)->屬性->高級系統設置->環境變量中設置path路徑,添加python的安裝目錄,不過我個人比較喜歡用cmd的wmic命令改變環境變量。(順便提一句,大家可以用一個批處理將本文所有涉及環境變量的設置都用wmic命令寫入。)


好了,win+R運行cmd,輸入下列命令


wmic ENVIRONMENT where "name='path' and username='<system>'" set VariableValue="%path%;C:\Python27"

注意以上命名爲一行


然後重新打開cmd,輸入python,結果發現python不是內部命令,再輸入命令:


echo %path%


發現沒有剛纔我們設置的python目錄,怎麼回事?其實這裏是環境變量沒有更新的緣故,大家再設置完後,還是要進入開始->計算機(在上面點右鍵)->屬性->高級系統設置->環境變量,然後什麼都不用改,直接點確定,再回來cmd查看path目錄,這才發現已經出現我們設定的python目錄了。有的童鞋肯定會問,既然還是要進入環境變量設置界面,我幹嘛不直接在裏面設置不就行了嗎,還要這麼麻煩幹什麼?這樣最爲直接。


但是我是不喜歡path那一長條的輸入框,拖過來拖過去的,而且分號什麼的路徑寫入容易出錯,所以建議大家還是多采取命令的形式比較好一點


好了,趕緊試一下我們的配置是否正確吧。輸入命令:


python -?


然後balabala...出現一堆,這就說明我們的python配置好了。


接下來使用python創建工程。進入cocos2d-x-2.2.1目錄下的tools->project-creator,大家可以看到有一個create_project.py腳本,如果有興趣的童鞋可以右鍵在IDE中打開來看看,從中可以截取到該腳本的使用方法


SouthEast


好了,我們趕快將這個腳本使用起來吧


在project-creator目錄下按住shift+鼠標右鍵,選擇在此處打開命令窗口,輸入命令:


python create_project.py -project HelloWorld -package org.HelloWorld.game -language cpp


然後等待結果


SouthEast


大家可以看到,我們的工程創建完畢了,其中,HelloWorld是我們命令中輸入的工程名,也就是在cocos2d-x-2.2.1->Projects文件夾下創建了我們的工程,名字就是HelloWorld,在HelloWorld文件夾下的proj.android文件夾就是我們之後需要編譯的android項目,創建命令後面的org.HelloWorld.game是安卓APK的識別名,大家可以按照“xxx.xxx.xxx”的格式自己命名


這裏我寫了一個bat批處理,大家可以放在project-creator目錄下,以後可以很方便的創建工程


在project-creator目錄下點右鍵創建一個文本文檔,打開,將以下內容複製進去,然後點保存,更改文件的後綴名爲bat即可


-----------------------------------------------------------------------------------------

@echo off
:label1
@cls
echo 歡迎使用Python創建Cocos2d-x工程
set /p project=請輸入需要創建的工程名:
set /p aID=請輸入需要創建的android版本包標識名:
echo 您輸入的工程名爲%project%
echo 您輸入的android版本包標識名爲%aID%
echo 確認創建工程嗎?
CHOICE /C 123 /M "確認請按 1,取消請按 2,或者退出請按 3。"
echo %errorlevel%
if %errorlevel%==1 goto label2
if %errorlevel%==2 goto label1
if %errorlevel%==3 goto label3
:label2
echo 正在創建工程...
python create_project.py -project %project% -package %aID% -language cpp
:label3
pause

-----------------------------------------------------------------------------------------

注意只需複製以上紫色部分


回到Visual Studio2012,在解決方案上點擊右鍵,點添加->現有項目


SouthEast


然後在這個目錄(cocos2d-x-2.2.1\projects\HelloWorld\proj.win32)下找到HelloWorld.vcxproj


SouthEast


點擊打開


SouthEast


可以看到我們的HeloWorld已經添加進我們的工程中了。好了,還等什麼,編譯一下吧。這裏提一句,我們可以將HelloWorld設置爲啓動項目,這樣每次調試的時候就可以方便的點擊“本地Windows調試器”進行調試,而不是每次都得啓動新實例。在HelloWorld上點右鍵,可以找到“設爲啓動項目”這一欄。


SouthEast


設置完成後我們會發現我們的HelloWorld加粗了,好了,運行一下試試
點本地Windows調試器,彈出窗口,選擇不再顯示此對話框,然後點是


SouthEast


等待編譯,然後就會輸出HelloWorld窗口了,這次是“小瓶”的,呵呵!


SouthEast


好了,以上我們已經將自己的工程創建好了!


接下來要來配置cocos2d-x在win7下的android交叉編譯環境


4、安裝java,設置java環境


android環境的搭建少不了java這玩意,選擇默認路徑安裝好後便可以用wmic命令向系統添加java的環境變量了,win+R運行cmd,輸入以下三個命令


wmic ENVIRONMENT create name="JAVA_HOME",username="<system>",VariableValue="C:\Program Files\Java\jre7"

以上爲一行
wmic ENVIRONMENT create name="CLASSPATH",username="<system>",VariableValue=";%JAVA_HOME%\lib\;"

以上爲一行
wmic ENVIRONMENT where "name='path' and username='<system>'" set VariableValue="%path%;C:\Program Files\Java\jre7\bin"

以上爲一行


然後進入系統環境變量設置界面更新一下,重啓cmd,試一下輸入java,只要不是出現“java不是內部命令或外部命令”之類的,就表示你設置成功了。


5、安裝cygwin與配置Android NDK


運行下載好的cygwin-setup-x86_64.exe,看到下列安裝界面


SouthEast


點擊下一步

SouthEast

繼續


SouthEast


默認路徑安裝,然後選擇下載保存的路徑,這個大家可以自己配置,安裝完畢後最好做個備份,免得再次需要安裝時還要下載,國內的網速下載還是比較蛋疼的~~~~~


SouthEast


默認選擇,下一步

SouthEast

選擇第一個網站

SouthEast

這裏大家注意了,一定要將紅框標出來的點擊一下,變成install


SouthEast


點擊下一步,漫長的等待下載~~~~~~


終於安裝完畢,我們趕緊打開來試試吧


第一次點開cygwin目錄會在c:\cygwin64\home文件下生成以系統登錄賬戶爲名字的文件夾


SouthEast

然後在我們下載的軟件裏找到Editplus軟件,默認安裝後就可以將任何文本文件以Editplus軟件打開


現在,將我們下載下來的Android NDK也就是android-ndk-r9b-windows-x86_64.zip解壓縮至英文路徑下,這個路徑將會在接下來寫入到cygwin的.bash_profile配置文件中,好了,我的解壓路徑爲:D:\study\android\IDE\
注意:該路徑不能存在空格,全英文


大家在c:\cygwin64\home文件下生成的以系統登錄賬戶爲名字的文件夾下找到.bash_profile文件,點擊右鍵,用EditPlus軟件打開,在結尾處輸入回車,接着輸入下列語句:


NDK_ROOT=/cygdrive/d/study/android/IDE/android-ndk-r9b

export NDK_ROOT

以上爲兩行


SouthEast


然後點擊保存,關閉。這裏的cygwin是指本地磁盤,d是d盤,後面是NDK路徑,大家按照自己的文件路徑填寫,注意windows路徑中“\”和cygwin中“/”的區別。順便提一句,目錄一直要寫到有ndk-build.cmd文件的文件夾


接着用EditPlus打開C:\cygwin64\etc文件夾下的bash.bashrc文件,在結尾處輸入回車,輸入自己的cocos2d-x工程的文件夾路徑(還記得我們之前創建的HelloWorld工程嗎?),注意,這一步不是必要的,完成的功能是在每次打開cygwin的時候不用去輸入完整路徑跳轉至你的工程文件夾下。好了,我的路徑配置爲:


cd d:/study/cocos2d-x/cocos2d-x-2.2.1/projects/HelloWorld/proj.android

以上爲一行


大家可以根據自己的路徑改變,以後新建工程時也要記得改變自己的編譯路徑。還是要提醒大家注意windows路徑中“\”和cygwin中“/”的區別。


重啓cygwin,大家可以發現當前路徑已經變成了我們設置的路徑了


SouthEast


好了,輸入ls命令,會發現一個build_native.sh的文件,這就是我們需要用NDK編譯的文件了


SouthEast


接着輸入以下命令:
./build_native.sh

以上爲一行


如果順利的話(仔細按照步驟來的話是沒有什麼問題的),就可以看到我們的NDK開始辛勤的編譯cocos2d-x的一些本地C++代碼了~~~~~又是漫長的等待。


編譯完成後就可以退出cygwin了


這是完成後的最後界面的截圖,如果你能看到這個界面的話就代表本步驟順利完成。


SouthEast


6、安裝Android SDK,配置Android的Eclipse編譯環境


找到我們下載的adt-bundle-windows-x86_64-20131030.zip,解壓,路徑大家可以自己配置,還是注意英文路徑,不加空格即可。


接着運行adt-bundle-windows-x86_64-20131030\eclipse下的eclipse(ADT自帶Eclipse編譯環境),選擇工程文件夾,這裏可以隨意配置


SouthEast


接着關掉說明頁,進入主界面。在主界面點擊配置SDK


SouthEast


然後大家可以按照需求選擇Android SDK的版本,這裏我選擇下載Android(API 8),然後選擇安裝


SouthEast

SouthEast

SouthEast


慢慢等待下載安裝結束。


接下來配置Android VDM


SouthEast


然後選擇DeviceDefinitions,隨便選擇一個創建,好像是現在的VDM不支持OpenGL的高版本,所以我使會用BlueStacks模擬器來調試,這裏只是生成apk


SouthEast


7、編譯Android項目


好了,以上我們所有的環境都已搭建完成,在將我們的項目導入eclipse之前,我們還需要將cocos2d-x-2.2.1\cocos2dx\platform\android\java\src下的org文件夾拷貝至我們的項目中,也就是cocos2d-x-2.2.1\projects\HelloWorld\proj.android\src下,由於我們之前創建項目時定的android包名前面也是org,所以會有覆蓋選項,大家請選擇合併覆蓋即可


那是不是每次編譯安卓項目是都要複製這個包過來呢?其實是不用的,這個放在文章的末尾來討論


接着,回到eclipse環境,導入項目


SouthEast

SouthEast

SouthEast


注意在選擇路徑時寫到HelloWorld文件夾下即可


導入工程後,在工程HelloWorld上點選右鍵,選擇Properties


SouthEast


選擇builders,點擊New


SouthEast


選擇program


SouthEast


然後在接下來的界面中的


name欄輸入:Native_Builder


Location欄輸入:C:\cygwin64\bin\bash.exe


Arguments欄輸入:--login -c "cd /cygdrive/d/study/android/IDE/android-ndk-r9b && make APP=HelloWorld"

以上爲一行


Arguments欄中,login前有兩個"-"符號,中間的目錄設置參考前面教程中對NDK_ROOT的路徑設定,後面的HelloWorld爲創建的工程名,這個根據自己創建的工程名設定。


提示:如果不是按照默認路徑安裝的,請選擇Browse File System,找到相關的路徑


SouthEast


選擇OK,選中Native_Builder,並將其調到最上面


SouthEast


然後選擇C/C++ Build->Environment->Add


SouthEast


接下來在Name欄輸入path,在Value欄輸入C:\cygwin64\bin


SouthEast


然後在Java Build Path裏面選擇Libraries欄,將Android Dependencies以及Android Private Libraries兩個library刪掉


SouthEast


說明一下,以上我們是將cygwin的編譯環境合併到了Eclipse裏,Eclipse利用cygwin並調用cygwin的bash以及make,通過NDK來編譯我們的Android程序,所以每次導入新的工程都要將上述步驟重新配置一下,這點非常重要,如果配置不正確,會導致很多莫名其妙的報錯,最典型的錯誤就是提示找不到bash命令什麼的~~~~


好了,現在我們可以生成APK文件了,在主界面選中自己的工程,然後在命令條上選擇Run->Run as->Android Application


SouthEast


如果以上步驟都按照教程設定的話,就能夠生成APK了,APK存放在proj.android->bin文件夾下


快將APK裝在自己的真機上進行測試吧!!!!!


以上編譯環境就配置結束了。

——————————————————————————————————


深入討論問題:每次在編譯Android項目之前是不是都要將cocos2d-x-2.2.1\cocos2dx\platform\android\java\src下的org文件夾拷貝至我們的項目中呢?

其實不然,大家可以發現,每次我們執行./build_native.sh時,proj.android文件夾中的Resource裏面的內容都會複製到assets文件夾中,所以我們可以稍微修改一下sh文件就可以免去每次創建項目的時候都要拷貝一遍本地編譯庫的操作

方法:


1、在C:\cygwin64\home\“自己的用戶名”\文件夾下找到.bash_profile


2、用EditPlus打開編輯


3、在文件末尾輸入回車,加入以下路徑設定


COCOS2DX_DIR=/cygdrive/d/study/cocos2d-x/cocos2d-x-2.2.1

export COCOS2DX_DIR

以上爲兩行


SouthEast


然後在\cocos2d-x-2.2.1\template\multi-platform-cpp\proj.android目錄下找到原生的build_native.sh,我們用EditPlus打開對它進行修改


在36行找到這句話,這句話是對NDK_ROOT的路徑進行判斷


SouthEast


我們在後面加入一樣的語句,只是將NDK_ROOT替換爲我們設定的目錄,也就是COCOS2DX_DIR


SouthEast


然後再繼續向後翻,在50行這裏加入


echo "COCOS2DX_DIR = $COCOS2DX_DIR"


SouthEast


接着在後面我們發現了這樣的語句


SouthEast


嘿嘿!!!!大家看出來了吧,這句話就相當於複製文件了,好了,我們依葫蘆畫瓢吧~~~~


SouthEast


也就是在後面加上如下語句:


for file in "$COCOS2DX_DIR"/cocos2dx/platform/android/java/src/*
do
if [ -d "$file" ]; then
   cp -rf "$file" "$APP_ANDROID_ROOT"/src
fi


if [ -f "$file" ]; then
   cp "$file" "$APP_ANDROID_ROOT"/src
fi
done


OK,文件修改完畢,大家記得保存哦!


這樣修改了之後,在大家重新創建工程時,cocos2d-x的python腳本就會將template\multi-platform-cpp文件夾下的內容稍加修改(主要是項目名稱的修改)後直接複製到我們的工程裏,這樣我們修改後的文件就可以使用了,哈哈!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章