cocos2d 在windows環境下搭建
詳細搭建步驟如下:
1、Android 開發環境搭建
Android開發環境搭建不是重點,相信看此文章的很多人都已經搭建成功,這裏隨便概述性的說說。
1、下載 JDK
2、下載 Eclipse
3、下載 Android SDK
4、啟動Eclipse , 安裝 ADT
2、下載安裝Android NDK
我使用的NDK版本為r5
Google 出的最新NDK 為 r7 下載地址為
https://developer.android.com/sdk/ndk/index.html
3、下載安裝cygwin
由於NDK編譯代碼時必須要用到make和gcc,所以你必須先搭建一個linux環境, cygwin是一個在windows平台上運行的unix模擬環境,它對於學習unix/linux操作環境,或者從unix到windows的應用程序移植,非常有用。通過它,你就可以在不安裝linux的情況下使用NDK來編譯C、C++代碼了。下麵我們一步一步的安裝cygwin吧。
(安裝的時候忘記截圖了)
首先,你得先跑到https://www.cygwin.com下載setup.exe
1、 然後雙擊運行吧,運行後你將看到安裝向導界麵:
2、 點擊下一步
此時讓你選擇安裝方式:
1)Install from Internet:直接從Internet上下載並立即安裝(安裝完成後,下載好的安裝文件並不會被刪除,而是仍然被保留,以便下次再安裝)。
2)Download Without Installing:隻是將安裝文件下載到本地,但暫時不安裝。
3)Install from Local Directory:不下載安裝文件,直接從本地某個含有安裝文件的目錄進行安裝。
3、選擇第一項,然後點擊下一步:
4、選擇要安裝的目錄,注意,最好不要放到有中文和空格的目錄裏,似乎會造成安裝出問題,其它選項不用變,之後點下一步:
5、上一步是選擇安裝cygwin的目錄,這個是選擇你下載的安裝包所在的目錄,默認是你運行setup.exe的目錄,直接點下一步就可以:
6、此時你共有三種連接方式選擇:
1) Direct Connection:直接連接。
2) Use IE5 Settings:使用IE的連接參數設置進行連接。
3) Use HTTP/FTP Proxy:使用HTTP或FTP代理服務器進行連接(需要輸入服務器地址、端口號)。
用戶可根據自己的網絡連接的實情情況進行選擇,一般正常情況下,均選擇第一種,也就是直接連接方式。然後再點擊“下一步”,
7、 這是選擇要下載的站點,我用的是https://mirrors.kernel.org,速度感覺還挺快,選擇後點下一步
8、 此時會下載加載安裝包列表
9、Search是可以輸入你要下載的包的名稱,能夠快速篩選出你要下載的包。那四個單選按鈕是選擇下邊樹的樣式,默認就行,不用動。View默認是Category,建議改成full顯示全部包再查,省的一些包被隱藏掉。左下角那個複選框是是否隱藏過期包,默認打鉤,不用管它就行,下邊開始下載我們要安裝的包吧,為了避免全部下載,這裏列出了後麵開發NDK用得著的包:autoconf2.1、automake1.10、binutils、gcc-core、gcc- g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make共12個包
10、 然後開始選擇安裝這些包吧,點skip,把它變成數字版本格式,要確保Bin項變成叉號,而Src項是源碼,這個就沒必要選了。
11、 下麵測試一下cygwin是不是已經安裝好了。
運行cygwin,在彈出的命令行窗口輸入:cygcheck -c cygwin命令,會打印出當前cygwin的版本和運行狀態,如果status是ok的話,則cygwin運行正常。
然後依次輸入gcc –v,g++ -v,make –v,gdb –v進行測試,如果都打印出版本信息和一些描述信息,非常高興的告訴你,你的cygwin安裝完成了!
4、配置NDK環境變量
為了不讓大家步入我的後塵,在這裏得
注意:最好不要用記事本打開.bash_profile文件,用UltraEdit打開時會有個提示“你想轉換C:\cygwin\home\Administrator\.bash_profile為DOS格式嗎?”嗬嗬!!這裏千萬不要點是,否則編碼格式就被你改了,用cygwin運行NDK的時候就顯示如下錯誤了:
“-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: /home/lenovo/.bash_profile: line 47: syntax error: unexpected end of file
”如果真要是這樣了,解決辦法:cygwin下etc\skel和etc\defaolts\etc\skel中有這個文件,重新copy此文件出來一份,然後將你改壞了的那個.bash_profile內容copy覆蓋這個文件的內容,然後在此文件Copy到C:\cygwin\home\Administrator下,然後再運行就可以了。
1、 首先找到cygwin的安裝目錄,找到一個home\<你的用戶名>\.bash_profile文件,我的是:E:\cygwin\home\Administrator\.bash_profile,(注意:我安裝的時候我的home文件夾下麵神馬都沒有,解決 的辦法:首先打開環境變量,把裏麵的用戶變量中的HOME變量刪掉,在E:\cygwin\home文件夾下建立名為Administrator的文件夾(是用戶名),然後把E:\cygwin\etc\skel\.bash_profile拷貝到該文件夾下)。
2、 打開bash_profile文件,添加NDK=/cygdrive/<你的盤符>/<android ndk 目錄> 例如:NDK=/cygdrive/e/android-ndk-r5
export NDK
NDK這個名字是隨便取的,為了方麵以後使用方便,選個簡短的名字,然後保存
3、打開cygwin,輸入cd $NDK,如果輸出上麵配置的/cygdrive/e/android-ndk-r5信息,則表明環境變量設置成功了。
5、用NDK來編譯程序
1、 現在我們用安裝好的NDK來編譯一個簡單的程序吧,我們選擇ndk自帶的例子hello-jni,我的位於E:\android-ndk-r7\samples\hello-jni(根據你具體的安裝位置而定),
2、 運行cygwin,輸入命令cd /cygdrive/e/android-ndk-r7/samples/hello-jni,進入到E:\android-ndk-r7\samples\hello-jni目錄。
3、 輸入$NDK/ndk-build,執行成功後,它會自動生成一個libs目錄,把編譯生成的.so文件放在裏麵。($NDK是調用我們之前配置好的環境變量,ndk-build是調用ndk的編譯程序)
4、 此時去hello-jni的libs目錄下看有沒有生成的.so文件,如果有,你的ndk就運行正常啦!
特別說明:
cocos2d-2.0.3:運行create-android-project.bat,然後用cygwin編譯後,cocos2dx-2.0創建的helloworld不生成org.cocos2dx.lib,估計新版本又有改動(解決辦法:cocos2d-2.0-x-2.0.4\cocos2dx\platform\android\java\src去copy)
cocos2d-2.0.2:運行ok,產生了lib包,但是沒有自帶win32的HelloWorld,由於之初不會創建win32的HelloWorld
cocos2d-2.0.1:利用create-android-project.bat,然後用cygwin編譯後,導入eclipse中ok,win32創建的HelloWorld也ok,推薦大家使用2.0.1的這個版本,會減少很多麻煩。
6、下載cocos2d-x-2.0.1解壓
我先說第一種:創建android版的cocos2dx的HelloWorld
1、用代碼閱讀工具打開create-android-project.bat(千萬不用將它設置成默認程序打開,不然你就打不開了,倒是後就需要修改去注冊表中修改,默認啟動方式了。我是用UtralEdit打開的,用它打開的時候,千萬不要轉換其格式了噢)
2、設置環境變量路徑:
set _CYGBIN=C:\cygwin\bin(這是我的路徑,請設置成自己對應的安裝路徑)
set _ANDROIDTOOLS=C:\Users\Potter\Documents\work\Android\android-sdk-windows\tools(同理)
set _NDKROOT=C:\Users\Potter\Documents\work\Android\android-ndk-r8(同理)
記得保存,設置好這3個環境變量就ok了.
3、重新打開create-android-project.bat,(注意:如果是win7,請以管理員的身份運行,否則又會出現問題)下圖所示:
輸入包名,然後再輸入工程名,
輸入android版本id:注意的選2.2以上的版本才支持GLES2.0,不然導入eclipse會提示不支持GLES2.0的,那就是沒有選2.2以上的原因,不過此時自己改成2.2的包就可以了
4、用cygwin編譯我們產生的工程
如下圖所示:
然後回車,顯示如下結果:
由於我之前就已經編譯過產生so了,所以會這樣,如果是第一次編譯會產生很多信息的,不過最後的信息和我這一樣,這是你創建的工程HelloWorld就成功了。
補充:
問題:庫生成的時候沒有權限造成so生成失敗(win7可能出現此問題)
如下圖:
解決辦法:運行cmd 將其路徑定位到你的工程庫目錄下(如:D:\work\cocos2d-x-2.0.1\MyHelloWorld\proj.android\obj\local\armeabi 這是我的,你的對應)
然後執行:
takeown /f * /a /r
然後再執行:
icacls * /t /grant:r everyone:f
然後再用cygwin去生成ok
5、將工程導入到eclipse中...
注意:有的可能導不進來,也就是找不到工程,哈哈!那是少了兩個文件,在別的工程裏去copy一份過來,就能看到了。導入進來有感歎號!別急著運行,project中的clean下,然後稍等一下,工程沒有感到好了,ok,這是我們運行:
哈哈!高興一下吧~
第二種:win32的HelloWorld
我用我的mac在win7下搞了昨天一天,然後在我原來的老筆記本上裝,同樣的配置:vs2010+cocos2dx-2.0.1結果,結果跑起來非常順利,一下就成功了。結果在mac上的win7下出現各種問題,費勁各種奏折,看了n篇文章,反複操作,然後不斷的請高手指教,終於是在我的mac上的win7下vs2010上將其把HelloWorld給跑出來了。下麵就和大家分享一下,我是如何搭建的,然後遇到了一些什麼問題?
1、安裝vs2010
2、然後運行cocos2d-x下的cocos2d-win32.vc2010.sln
3、右擊解決方案、然後選生成解決方案
這裏需要等待一段時間....
結果如下:
運氣很好~ 然後點擊HelloWorld工程,右擊設置為啟動項,然後調試運行....這是幸運人士顯示的結果:
如果這個過程全是一次性通過的,恭喜你!你的運氣真的非常棒!....
接下來截出這個生成過程中,我以前出現過得各種問題的圖:
問題一:
以上兩種情況出現的原因:你是的Path係統環境變量的路徑,被弄沒了
變量值,從左拉到右都沒有看到關於System32相關的關鍵變量了....
解決辦法:;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem
將上麵這段環境變量,添加到變量值最後麵然後確定,就ok了...
然後再試試:生成和運行cocos2d-x下麵的build-win32.bat,就不會出現上麵的問題了。
問題2:
這個問題,絕大部分人生成的時候都會,報這個錯,直接將cocos2d-x下麵別的目錄下,copy到cocos2d-x-2.0.1的Debug.win32下麵,就ok了
還有很多什麼缺這個,缺那個的,文件失敗的,都采用這種方式去處理,直到不再生成文件或者什麼失敗的情況,好了,現在運行後,HelloWorld神奇的出現了
各種開心吧~~
補充:在win32下創建自己的工程,為了以後方便,也將此內容更新到此處~
第一步:運行InstallWizardForVS2010.js(我用的是vs2010,你選擇對應的,我的目錄如下:D:\work\cocos2d-x-2.0.1\template\msvc)
補充:此處可能出現的問題有兩種:
問題一:installWizardForVS2010.js 無法打開:
解決辦法:
打開注冊表編輯器,定位[HKEY_CLASSES_ROOT\.js]這一項,雙擊默認值將其改為“JSFile”即可
問題二:installWizardForVS2010.js,提示:該文件沒有與之關聯的程序來執行該操作。請安裝一個程序,或者,如果已安裝程序,請在默認程序
解決辦法:installWizardForVS2010.js右擊,打開方式:C:\Windows\System32下的wscript.exe來打開..
第二步:創建工程
如果第一步操作成功,那打開vs創建新工程的時候,在visual C++模塊下就會多一個Cocos2d-x..選擇他,用他來創建一個MyHelloWorld
下一步:
第三步:添加包含和庫 ---》右擊工程,選擇屬性
包含目錄:如下圖(添加你自己對應的路徑)
添加庫目錄:lib文件夾(在你的工程目錄下創建,然後從cocos2dx目錄下去copy如下文件到這個lib下麵) 如下圖:
第四步:生產...然後運行
第五步:添加如下文件到你工程目錄下的Debug.win32文件夾下(不知道不知道我這裏這些文件怎麼來的,就去cocos2dx的Debug.win32目錄下麵去copy進入)
第六步:運行...顯示HelloWorld ok 恭喜了~
搞了這麼久大家支持下吧!
最後更新:2017-04-03 12:56:36