今天對cocos2d-x編譯成android做個筆記,本文使用的是2.2.1版本。這裡指記錄如何編譯。本文主要參考http://blog.csdn.net/sttyytw/article/details/17005263
1、建立通過python來建立項目
1
<code>python create_project.py </code><code>-</code><code>project helloworld </code><code>-</code><code>package com.xzw.game </code><code>-</code><code>language cpp</code>
另外提供批處理,友善下次建立:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<code>@</code><code>echo</code> <code>off</code>
<code> </code><code>:label1</code>
<code> </code><code>@cls</code>
<code> </code><code>echo</code> <code>歡迎使用Python建立Cocos2d-x工程</code>
<code> </code><code>set</code> <code>/p</code> <code>project=請輸入需要建立的工程名:</code>
<code> </code><code>set</code> <code>/p</code> <code>aID=請輸入需要建立的android版本包辨別名:</code>
<code> </code><code>echo</code> <code>您輸入的工程名為%project%</code>
<code> </code><code>echo</code> <code>您輸入的android版本包辨別名為%aID%</code>
<code> </code><code>echo</code> <code>确認建立工程嗎?</code>
<code> </code><code>CHOICE </code><code>/C</code> <code>123 </code><code>/M</code> <code>"确認請按 1,取消請按 2,或者退出請按 3。"</code>
<code> </code><code>echo</code> <code>%errorlevel%</code>
<code> </code><code>if</code> <code>%errorlevel%==1 goto label2</code>
<code> </code><code>if</code> <code>%errorlevel%==2 goto label1</code>
<code> </code><code>if</code> <code>%errorlevel%==3 goto label3</code>
<code> </code><code>:label2</code>
<code> </code><code>echo</code> <code>正在建立工程...</code>
<code> </code><code>python create_project.py -project %project% -package %aID% -language cpp</code>
<code> </code><code>:label3</code>
<code> </code><code>pause</code>
<a href="http://s3.51cto.com/wyfs02/M00/11/67/wKioL1LOZPewKWVhAAH3GcXskgI882.jpg" target="_blank"></a>
建立好後會在cocos2d-x-2.2.1\projects目錄下。
2、使用cygwin進入proj.android目錄下,然後執行./build_native.sh就可以進行編譯了。
<a href="http://s3.51cto.com/wyfs02/M00/11/67/wKioL1LObFGhTbsXAAOZr63cMRA798.jpg" target="_blank"></a>
前提是需要對build_natvie.sh進行修改,這樣才能夠自動将所需要cocos2d-x的類加到工程中。
首先在cygwin中添加cocos2d-x的配置
<code>COCOS2DX_DIR=</code><code>/cygdrive/e/resource/cocos2d-x/cocos2d-x-2</code><code>.2.1</code><code>/cocos2d-x-2</code><code>.2.1</code>
<code>export</code> <code>COCOS2DX_DIR</code>
然後修改cocos2d-x-2.2.1\template\multi-platform-cpp\proj.android下的build_native.sh檔案進行修改。如下圖:
<a href="http://s3.51cto.com/wyfs02/M00/11/67/wKiom1LObsbxXSYcAAdvufsrTKI669.jpg" target="_blank"></a>
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<code>APPNAME=</code><code>"HelloCpp"</code>
<code># options</code>
<code>buildexternalsfromsource=</code>
<code>usage(){</code>
<code>cat</code> <code><< EOF</code>
<code>usage: $0 [options]</code>
<code>Build C</code><code>/C</code><code>++ code </code><code>for</code> <code>$APPNAME using Android NDK</code>
<code>OPTIONS:</code>
<code>-s Build externals from </code><code>source</code>
<code>-h this help</code>
<code>EOF</code>
<code>}</code>
<code>while</code> <code>getopts</code> <code>"sh"</code> <code>OPTION; </code><code>do</code>
<code>case</code> <code>"$OPTION"</code> <code>in</code>
<code>s)</code>
<code>buildexternalsfromsource=1</code>
<code>;;</code>
<code>h)</code>
<code>usage</code>
<code>exit</code> <code>0</code>
<code>esac</code>
<code>done</code>
<code># paths</code>
<code>if</code> <code>[ -z </code><code>"${NDK_ROOT+aaa}"</code> <code>];</code><code>then</code>
<code>echo</code> <code>"please define NDK_ROOT"</code>
<code>exit</code> <code>1</code>
<code>fi</code>
<code>if</code> <code>[ -z </code><code>"${COCOS2DX_DIR+aaa}"</code> <code>];</code><code>then</code>
<code>echo</code> <code>"please define COCOS2DX_DIR"</code>
<code>DIR=</code><code>"$( cd "</code><code>$( </code><code>dirname</code> <code>"${BASH_SOURCE[0]}"</code> <code>)</code><code>" && pwd )"</code>
<code># ... use paths relative to current directory</code>
<code>COCOS2DX_ROOT=</code><code>"$DIR/../../.."</code>
<code>APP_ROOT=</code><code>"$DIR/.."</code>
<code>APP_ANDROID_ROOT=</code><code>"$DIR"</code>
<code>echo</code> <code>"COCOS2DX_DIR = $COCOS2DX_DIR"</code>
<code>echo</code> <code>"NDK_ROOT = $NDK_ROOT"</code>
<code>echo</code> <code>"COCOS2DX_ROOT = $COCOS2DX_ROOT"</code>
<code>echo</code> <code>"APP_ROOT = $APP_ROOT"</code>
<code>echo</code> <code>"APP_ANDROID_ROOT = $APP_ANDROID_ROOT"</code>
<code># make sure assets is exist</code>
<code>if</code> <code>[ -d </code><code>"$APP_ANDROID_ROOT"</code><code>/assets</code> <code>]; </code><code>then</code>
<code> </code><code>rm</code> <code>-rf </code><code>"$APP_ANDROID_ROOT"</code><code>/assets</code>
<code>mkdir</code> <code>"$APP_ANDROID_ROOT"</code><code>/assets</code>
<code># copy resources</code>
<code>for</code> <code>file</code> <code>in</code> <code>"$APP_ROOT"</code><code>/Resources/</code><code>*</code>
<code>do</code>
<code>if</code> <code>[ -d </code><code>"$file"</code> <code>]; </code><code>then</code>
<code> </code><code>cp</code> <code>-rf </code><code>"$file"</code> <code>"$APP_ANDROID_ROOT"</code><code>/assets</code>
<code>if</code> <code>[ -f </code><code>"$file"</code> <code>]; </code><code>then</code>
<code> </code><code>cp</code> <code>"$file"</code> <code>"$APP_ANDROID_ROOT"</code><code>/assets</code>
<code>for</code> <code>file</code> <code>in</code> <code>"$COCOS2DX_DIR"</code><code>/cocos2dx/platform/android/java/src/</code><code>*</code>
<code> </code><code>cp</code> <code>-rf </code><code>"$file"</code> <code>"$APP_ANDROID_ROOT"</code><code>/src</code>
<code> </code><code>cp</code> <code>"$file"</code> <code>"$APP_ANDROID_ROOT"</code><code>/src</code>
<code># run ndk-build</code>
<code>if</code> <code>[[ </code><code>"$buildexternalsfromsource"</code> <code>]]; </code><code>then</code>
<code> </code><code>echo</code> <code>"Building external dependencies from source"</code>
<code> </code><code>"$NDK_ROOT"</code><code>/ndk-build</code> <code>-C </code><code>"$APP_ANDROID_ROOT"</code> <code>$* \</code>
<code> </code><code>"NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/source"</code>
<code>else</code>
<code> </code><code>echo</code> <code>"Using prebuilt externals"</code>
<code> </code><code>"NDK_MODULE_PATH=${COCOS2DX_ROOT}:${COCOS2DX_ROOT}/cocos2dx/platform/third_party/android/prebuilt"</code>
3、eclipse導入比運作
<a href="http://s3.51cto.com/wyfs02/M02/11/67/wKiom1LObIfiN_GNAAFIWPOiBMY664.jpg" target="_blank"></a>
<a href="http://s3.51cto.com/wyfs02/M01/11/67/wKioL1LObHviohPVAAHqi_di1BY297.jpg" target="_blank"></a>
運作即可。就這麼就記錄了。
本文轉自xuzw13 51CTO部落格,原文連結:http://blog.51cto.com/xuzhiwei/1350191,如需轉載請自行聯系原作者