cocos2dx編譯命令
⑴ cocos2dx 3.16怎麼編譯
先給自己科普一下, android sdk 是給java開發者用的, 咱C++開發者用的是android ndk, 所以就是使用ndk來編譯cocos2dx程序了
使用命令行創建一個項目, 我這里創建的是一個lua項目:cocos new lua_proj2 -p com.company_name.program_name -l lua -d d:\xxx\xxx
此時創建了一個DEMO程序, 此時就可以使用cocos命令生成一個apk包, 進入到目錄lua_proj2\frameworks\runtime-src下面, 在此目錄下面執行命令cocos compile -p android 就會生成一個apk包, 把這個拖到genymotion上面, 就安裝跑起來了.
上面說的是不使用eclipse的方式來生成一個apk包, 下面記錄一下在eclipse中載入lua_proj2這個項目, 並生成apk包的過程. 為什麼一定要將cocos2dx項目導入到eclipse中來生成apk包呢, 因為在eclipse中可以連接AVD來調試android程序, 再者, eclipse可以運行在linux環境下面, 後面我打算在linux進行開發, 所以這一步是一定要跨出去的
打開eclipse, 載入lua_proj2項目, 在此注意一下, 不需要載入libcocos2dx這個項目, 只要載入lua_proj2這個自己新建一項目即可
在eclipse中右擊lua_proj2 -> Properties. 出現Properties for lua_proj2框框
創建一個新的builder
第一個紅框是builder名稱, 隨便填寫, 第二個紅框框是NDK生成工具, 即, 使用此工具來編譯C++項目, 第三個紅框框是工作目錄, 此處我使用lua_proj2項目目錄作為工作目錄, 切換到Environment選項卡, 新建一個在此生成器中使用的環境變數NDK_MODULE_PATH, 值是......\lua_proj2\frameworks\cocos2d-x\cocos;......\lua_proj2\frameworks\cocos2d-x;......\lua_proj2\frameworks\cocos2d-x\external, 前面的.......是絕對目錄的省略, 這里要輸入絕對路徑名稱, 在此我就不寫絕對路徑了.
一路OK下去, 到下面這個畫面
這個就新建立的builder, Project->Build Project
出現大量的error: 'override' does not name a type錯誤, 這是由於NDK的版本太低了, override是C++11中才有的關鍵字, 而到NDKr10才支持C++11, 所以要升級NDK. 到官網去下載吧
不大, 400多M的樣子, 更新完成之後, 看一下ndk\toolchains目錄下面的編譯器, 我的目錄是下面這樣子的
我很想使用clang來編譯, 但是現階段我還不會配置, 就用GCC吧, x86-4.6 & x86-4.8兩個版本的GCC, 4.8的支持C++11
在Application.mk中添加一句NDK_TOOLCHAIN_VERSION = 4.8 就是指定使用GCC4.8來編譯cocos2dx項目, 跑起來了, 下面是eclipse跑起來的console輸出
跟命令行下執行cocos compile -p android 跑出來的是一樣的, 都是在編譯程序. 下面進入到在eclipse下面調試程序
⑵ 怎麼把cocos2dx編譯成一個.so庫文件
android NDK編譯多個so文件 android編譯系統的makefile文件Android.mk寫法如下 (1)Android.mk文件首先需要指定LOCAL_PATH變數,用於查找源文件。由於一般情況下 Android.mk和需要編譯的源文件在同一目錄下,所以定義成如下形式: LOCAL_PATH:=$
⑶ 請教高手cocos2dx編譯的問題
操作方法如下:
make: 進入目錄「/cygdrive/e/cocos2d-x-2.1.4/Balloon/proj.android」
Compile++ thumb : game_shared <= AppDelegate.cpp
In file included from jni/../../Classes/AppDelegate.cpp:6:0:
jni/../../Classes/main.h:8:19: fatal error: tchar.h: No such file or directory
compilation terminated.
/cygdrive/f/Android/android-ndk-r9/帆辯build/core/build-binary.mk:348: recipe for target `obj/肢轎叢local/armeabi/objs/game_shared/__/__/Classes/AppDelegate.o' failed
make: *** [obj/歷櫻local/armeabi/objs/game_shared/__/__/Classes/AppDelegate.o] Error 1
make: 離開目錄「/cygdrive/e/cocos2d-x-2.1.4/Balloon/proj.android」
⑷ cocos2dx編譯的win32成語怎樣在其他機器運行
一、通用准備工作
1、安裝Cocos2d-x 3.1
在Cocos2d官網上下載 Cocos2d-x 3.2+引擎 ,下載後解壓縮。
2、安裝Eclipse與Android SDK
這個在Mac上或是PC上開發都是可以通用的。
Eclipse 在其官網下載( 官網地址 )。
Android SDK 在Android開發者中心下載( 地址 )。
Eclipse是開發Android需要用到的IDE。這是個很牛的IDE,有許多插件讓他變得三頭六臂。要開發Android的程序,需要下載相關的插件,但如果每個插件要自己配置,會是很蛋痛的事情。
如果是新手,推薦使用:ADT Bundle。這是Eclipse+Android SDK的合體,所有的項目都已經幫你配置好了。
3、安裝JDK
Eclipse需要Java環境才能運行。如果事先沒有安裝Java環境,則會報錯。
解決方案安裝jdk( 下載地址 )。
一般來說安裝之後會自動配置好環境變數。如果還沒有解決問題,請查找網路上關於JDK安裝的攻略,很多的。
4、安裝CDT插件 ( 下載地址 )
這是個Eclipse的插件,用來支持Eclipse中C/C++語言的開發。
從Eclipse的官網下載,下載之後,將features和plusins這兩個文件夾裡面的內容復制到Ecplise安裝目錄下對應的文件夾之後就可以了。
5、安裝NDK ( 下載地址 )
這是進行C/C++與Java混合編譯的必要工具。記下下載之後解壓到的目錄,因為到之後的安裝中會用到。
6、安裝ANT ( 下載地址 )
Cocos的Android開發需要用到它,所以下載下來安裝好吧。
二、PC環境下配置過程
1、安裝VS2012 ( 官方地址 )
網上還有很多其他下載地址。
最好是2012,我曾經試過2010,2013,都會出這樣那樣的問題。所以,2012!
2、安裝python 2.7.6 ( 下載地址 )
因為Cocos2d-x的安裝程序是用phthon寫的,所以需要這個軟體。不要下載python3.0以上的版本,否則運行會出錯。如果是Mac,那麼天生就自帶了。
3、進行開發環境配置
以上的工作完成之後,就可以進行配置了。啟動Windows的命令行(CMD)工具。進入Cocos2d-x 3.1的安裝目錄,執行:
python setup.py
Cocos2d-x 3.1版本使用這個setup.py來安裝,十分方便。執行之後會讓你配置上面准備工作中所安裝的:ANT、NDK、SDK等目錄,把安裝到哪兒去了填寫進入就行。
4、建立自己的項目
用setup.py配置好Cocos2d-x的環境之後,你的命令行中就會多如「cocos」的命令,新建項目將使用這個命令進行。示例:
cocos new hello(項目名稱)-p com.hello(包名字)-l cpp(項目類型) -d E:\MyCocos\cocos2d(目錄)
新建的項目會把所有的源文件和庫都拷到你的項目目錄中。所以新建的項目文件會很大,有許多人懷疑這個的必要性,不過到你之後的開發中就會知道這種配置方法是對的了。
項目建立好之後,就可以開發了:
A、進行VS2012的開發。
找到你的項目目錄下的:proj.win32,打開裡面的解決方案就行。剩下的就是你的任務了。一般來說,直接就可以運行。
B、進行Android的開發。
使用Eclipse中的項目導入,導入proj.android中的項目方案。導入之後,因為SDK的問題,一般無法啟動,關於這個問題,以及其它的問題,請參見(四、其它問題解決方案)。
三、MAC環境下配置過程
1、注冊蘋果開發者賬號 ( 注冊地址 )
如果不使用真機,使用模擬器調試,那麼有開發者賬號應該就足夠了。
如果要使用真機調試,需要購買IOS開發者會員,688RMB一年。我看到之前的攻略說要99美元,但是看現在的頁面的的提示,應該只要有網銀就可以支付了。網上的攻略寫得非常復雜,說要下載證書什麼什麼的,現在統統都不需要了,XCode全部為您代勞了,只要照提示一路點同意就行。
2、安裝XCode
在你的開發者首頁下面就有XCode的下載。通過App Store下載安裝即可。
請使用最新的XCode(需要OS X 10.8以上系統支持),並使用App Store安裝。我的MacBook Air從朋友那裡拿來時還是10.7,因為下載總是中斷,屢次不成功,所以用XCode 4.6,但好像不通過App Store安裝會出這樣那樣的問題。所以強烈推薦使用最新的版本。
3、進行開發者環境配置。
與PC的配置一樣,打開MAC的終端程序,執行setup.py,配置好各種SDK的路徑就行。但MAC需要再加上一句:
source /Users/yourname/.bash_profile
這是用來刷新配置文件的。
4、建立項目文件
使用命令行建立。
如果你像我一樣用兩個平台(PC與MAC)開發,可以共享同一個項目目錄。我的項目文件是放在PC上的,MAC通過共享訪問項目文件。
項目建立好之後就可以開發了。MAC下的配置相對簡單,使用XCode打開項目目錄下的proj.ios_mac下的項目配置文件就行。之後基本不會出錯的。
四、其它問題解決方案
Eclipse與Android相關:
問題 :SDK錯誤
因為Cocos2d-x的模版默認是使用Android 2.3.3(API-10),如果新安裝的ADT Bundle或Android SDK,是API-19,則會出現錯誤,解決方案是通過Android SDK中的管理工具(SDK Manager)下載Android 2.3.3的SDK。
問題 :Project 'XXX' is missing required source folder: 'gen'
這個問題就是上面的SDK錯誤導致的。
問題 :undefined reference to 'cocos2d::network::HttpClient::getInstance()'
我是使用網路庫(network)的時候出現這個錯誤的。如果你使用其它庫,解決方案是一樣的。原因是缺少庫的引用。解決方案是在Android.mk裡面增加:
LOCAL_WHOLE_STATIC_LIBRARIES += cocos_network_static
Cocos2d-x的開發者已經在Android.mk裡面加上了很多這種路徑,平時是注釋掉的。您要使用時把這些增加上去就行。
問題 :fatal error: cocos-ext.h: No such file or directory
問題分析:缺少頭文件路徑的引用
需要在:Android.mk裡面增加
LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../cocos2d/extensions
Cocos2d-x的開發者已經在Android.mk裡面加上了很多這種路徑,平時是注釋掉的。您要使用時把這些增加上去就行。
問題 :The import org.cocos2dx.lib cannot be resolved。
無法找到指定的庫文件。解決的方案是增加路徑的引用:Project Properties -> Java Build Path -> Source and then linking 「項目目錄/cocos/platform/android/java/src」
VS2012相關:
問題 :「extensions/ExtensionMacros.h」: No such file or directory
無法打開包括文件。
1、解決方案中,添加「現有項目」--> libExtensions 具體目錄: ..\cocos2d\extensions\proj.win32\libExtensions.vcxproj
2、項目中添加引用-->libExtensions
3、通過:屬性->C/C++->附加包含目錄。附加包含目錄:$(EngineRoot)
如果你使用其它的文件,解決方案是一樣的。1、增加項目的引用。2、附加頭文件的包含目錄。
當遇到COCOS2DX 3.2+版本創建許可權問題時:
首先,打開終端cd到目錄 /cocos2d-x-3.2/tools/cocos2d-console/bin 下, 運行 cocos.py 腳本創建文件。
[javascript] view plain
./cocos.py new HelloWorldDemo -p com.coco2dx.org -l cpp -d ~/Desktop
參數說明:
HelloWorldDemo為項目名稱
-p 後面接包名
-l 後面接開發語言類型,有cpp, lua, js三種類型
-d 後面接項目存放的目錄
如果出現 -bash: ./cocos.py: Permission denied ,是因為沒有許可權。 用命令 chmod 修改一下目錄下的 cocos.py 許可權就可以了
[cpp] view plain
chmod u+x cocos.py
-
⑸ android環境下cocos2dx-3.13.1,新建項目後proj.android下沒有build_native.py腳本文件,如何編譯項目
好像最近幾個版本不能使用build_native.py來build c++內容了,你這個項目都沒這個文件應該是完全取消了這個項目的生成方式。不如你試試命令行:
cocos compile -p android
如果不行,最好看一下官方怎麼說的。