18
COCOS2D-X 配置手册 Win32Android编制:刘勤熙 李育 完成日期:2012-1-19

cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

Embed Size (px)

Citation preview

Page 1: cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

COCOS2D-X 配置手册 (Win32、Android)

编制:刘勤熙 李育 完成日期:2012-1-19

Page 2: cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

目录 1. 引言 ........................................................................................................................................... 3 2. cocos2d-x Win32 环境配置 ...................................................................................................... 3

2.1 win32 开发环境配置 .......................................................................................................... 3 2.1.1 Visual Studio 2008 ................................................................................................... 3 2.1.2 cocos2d-x .................................................................................................................. 3 2.1.3 (可选)Visual Assist X ........................................................................................ 3 2.1.4 (可选)doxygen ................................................................................................... 4

2.2 Win32 可执行文件生成过程 ............................................................................................ 5 2.3 常见问题总汇 .................................................................................................................... 7

3 cocos2d-x Android 环境配置 .................................................................................................. 8 3.1 android 开发环境配置 ........................................................................................................ 8

3.1.1 Eclipse 3.7.1 ............................................................................................................. 8 3.1.2 Eclipse ADT 插件 .................................................................................................... 8 3.1.3 Eclipse CDT 插件 .................................................................................................. 10 3.1.4 AndroidSDK ........................................................................................................... 12 3.1.5 AndroidNDK .......................................................................................................... 13 3.1.6 Cygwin ................................................................................................................... 13

3.2 Android 可执行文件生成过程 ......................................................................................... 15 3.2.1 前期准备 ............................................................................................................... 15 3.2.2 生成 Android 空工程 ............................................................................................ 15 3.2.3 交叉编译 so 文件 .................................................................................................. 15 3.2.4 生成 android 系统可用的 apk 文件 ..................................................................... 16

3.3 常见问题汇总 .................................................................................................................. 18 4 其它 .............................................................................................................................................. 18

Page 3: cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

1. 引言

略…… 一切需要的软件及插件版本号以笔者使用为准,其它版本号的软件及插件不保证有效。文件

下载地址在 2012-1-19 确认有效,不保证因各种原因导致下载地址失效。 开发平台操作系统为 win32(WindowsXP、WindowsVista、Windows7)

2. cocos2d-x Win32 环境配置

2.1 win32开发环境配置

2.1.1 Visual Studio 2008

安装VisualStudio2008,默认安装即可,如果是自定义安装,VisualC++组件应选中。

2.1.2 cocos2d-x

1. 下载cocos2d-x引擎最新版

官方下载地址为:http://code.google.com/p/cocos2d-x/downloads/list

(当前使用版本为cocos2d-1.0.1-x-0.10.0.zip)

2.将cocos2d-1.0.1-x-0.10.0.zip解压缩至硬盘任意目录(建议

D:\Work7\cocos2d-1.0.1-x-0.10.0\, 因为现在wophone的开发环境必须安装至此, 以

下以此为例)

3. 如果想查看引擎源代码,可以在.\cocos2dx\proj.win32目录下找到代码配置文件。

2.1.3 (可选)Visual Assist X

用来提高VisualStudio2008的工作效率, 可以安装此工具。

安装支持 VS2008 版本的任意一版,无需配置。本软件是收费软件,需要注册。 技巧:如果不想让 VAX 对注释中的拼写进行校正(即去掉单词下面的波浪线提示),可以

选择 Visual Assist X Option, 进行如下配置:

Page 4: cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

2.1.4 (可选)doxygen

安装工具 doxygen 1.7.6.1 Win32版本(本例用, 本工具为开源软件)

运行 doxygen, 选择 file->open

找到 "D:\Work7\cocos2d-1.0.1-x-0.10.0\doxygen\" 目录下的doxygen.cocos2d-x文

件, 并打开

(此文件为cocos2d-x代码的 doxygen 配置文档)

Page 5: cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

然后选择 run 选项卡, 点击 rundoxygen 按钮开始生成.

生成完成后, 在 "D:\Work7\cocos2d-1.0.1-x-0.10.0\doxygen\" 目录下, 可以看到

帮助文件夹

通过修改doxygen的一些设置, 可以很方便的生成各种标准的帮助文档.

2.2 Win32 可执行文件生成过程

1. 运行cocos2d-x 解压目录根目录下面的build-win32.bat(..\..\build-win32.bat),

生成debug库文件, 执行成功后, 库文件保存在.\Debug.win32 下.

2. 运行..\..\install-templates-msvc.bat, 将项目模板加入VS2008模板库。

3. 将.\Debug.win32目录下的所有dll文件拷贝至Windows\system32\

Page 6: cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

4. 打开VS2008 IDE, 选择VisualC++工程. 新建一个项目, 可以看到新加入的cocos2d

模板

选择第一项, cocos2d-win32 applivation, 为项目任意命名(因为这一版无论怎样命名,

生成的工程文件都是helloword), 然后在向导栏选择默认值, 直接点finish.进入项目

设计界面.

5. 依次选择 工具->选项->项目和解决方案->VC++目录

在包含文件栏, 加入下列项目

D:\Work7\cocos2d-1.0.1-x-0.10.0\Box2D

D:\Work7\cocos2d-1.0.1-x-0.10.0\CocosDenshion\include

D:\Work7\cocos2d-1.0.1-x-0.10.0\cocos2dx\platform\third_party\win32\OGLES

D:\Work7\cocos2d-1.0.1-x-0.10.0\cocos2dx\platform\win32

D:\Work7\cocos2d-1.0.1-x-0.10.0\cocos2dx\platform

D:\Work7\cocos2d-1.0.1-x-0.10.0\cocos2dx\include

D:\Work7\cocos2d-1.0.1-x-0.10.0\cocos2dx

D:\Work7\cocos2d-1.0.1-x-0.10.0

D:\Work7\cocos2d-1.0.1-x-0.10.0\chipmunk\include\chipmunk

Page 7: cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

D:\Work7\cocos2d-1.0.1-x-0.10.0\cocos2dx\platform\third_party\win32

(上面红色部分第一个是重力引擎, 第二个应该是个网络连接的东西)

在库文件栏, 加入

D:\Work7\cocos2d-1.0.1-x-0.10.0\Debug.win32

(引用的是该目录下的所有Lib文件)

(发布时用release目录下的!!)

6. 点击VS9 IDE的启动调试按钮, 正常情况可以编译通过, 并显示 helloworld页面

看到这个页面, 表示win32环境配置成功.

2.3 常见问题总汇

1. 错误:

"error PRJ0019: 某个工具从以下位置返回了错误代码"(及类似错误)

"引用了一个%$#$#@.."

处理:

include 设置有误.

dll没有放在正确位置

2. 错误:

"LNK1000: Internal error during IncrBuildImage"

"....上一个增量链接没有生成它;正在执行完全链接..."

处理:

Page 8: cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

这是微软的一个漏洞, 下载KB948127补丁, 安装即可.

如果不能正常安装, 也可以把VS9中的增量编译关掉:

项目名处点右键, 依次选择->属性->配置属性->链接器->常规->启用增量链接(否)

以后再遇上此类问题, 可以尝试再次编译或者清理后重新生成.

3. 错误:

"....error LNK2019: 无法解析的外部符号...."

处理:

lib没有添加依赖

工程 点右键->属性->配置属性->链接器->输入 附加依赖项 填入以下lib文件

libcocos2d.lib libgles_cm.lib libBox2d.lib libchipmunk.lib libcurl_imp.lib

libCocosDenshion.lib

libjpeg.lib libpng.lib liblua.lib libxml2.lib libEGL.lib libzlib.lib

libzlib.lib libiconv.lib

pthreadVCE2.lib

(根据实际使用情况填写)

3 cocos2d-x Android 环境配置

3.1 android开发环境配置

Android 开发需要用到 JDK,做程序的都知道……

3.1.1 Eclipse 3.7.1

下载地址:http://www.eclipse.org/downloads/packages/eclipse-classic-371/indigosr1 选择对应的连接进行下载(32 位操作系统或 64 位操作系统) eclipse 为全绿色开发工具,直接解压缩后即可使用。

3.1.2 Eclipse ADT 插件

该插件是 Eclipse 平台下用来开发 Android 应用程序的插件。打开 eclipse3.7.1 选择 Help-> Software Updates,在 Work with 栏填入 https://dl-ssl.google.com/android/eclipse/ 等待 eclipse搜索完成后,会在主视窗中列出 ADT 插件下载项目,全部选择,点击 Next 按钮。

Page 9: cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

再次点选 Next 按钮后出现软件许可窗口,需要勾选同意,然后点击 Finish 按钮 eclipse 会开

始下载 ADT 插件。完成后重新启动可以在 File->New->Project 菜单下找到 Android Project证明 ADT 更新成功

Page 10: cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

3.1.3 Eclipse CDT 插件

安装 CDT 插件的目的为令 eclipse 可以识别由 C/C++开发的代码,对其进行编译。 CDT 可以从 http://www.eclipse.org/cdt/downloads.php 下载到,对应 eclipse3.7.1 的 CDT 插件

版本为 CDT8.0.1。 下载完成后,启动 eclipse,选择 Help-> Software Updates,点击 ADD 按钮选择 archive,选择下载好的 CDT 插件 zip 文件(cdt-master-8.0.1.zip)然后 OK 确认,勾选全部安装项目,

点击 next 按钮 eclipse 会开始安装。同样,在安装过程中有一次同意软件协议选项的勾选。

Page 11: cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

完成后 eclipse 会要求重启软件,OK 即可。重启 eclipse 后选择 New->Projec 会发现 eclipse已经支持 C/C++项目。

Page 12: cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

3.1.4 AndroidSDK

Android SDK 可以从 http://developer.android.com/sdk/index.html 下载到,截止到 2012-1-19最新版本为 r16,请选择对应 windows 操作系统位数进行下载。 下载完成后解压到任意路径即可,解压后路径内不包含任何 SDK,还需要运行 SDK Manager.exe 进行 SDK 包下载。 笔者没有下载最新的 SDK,是通过 r10 版本的 SDK Manager 进行更新的。将 r10 版本的 SDK Manager.exe 更新至 r15,即可看到新发布的 SDK 包。更新过程中笔者碰到了一个目录

被 占 用 的 错 误 , 解 决 办 法 为 : 打 开 androidSDK 所 在 路 径 的 temp 文 件 夹 将

tools_r15-windows.zip 解压缩,将 tools_r15-windows 中的 tools 文件夹覆盖至 androidSDK 根

目录,选择“No”即可,选择需要的包进行下载安装(2.1、2.2、2.3 版本的 SDK 包均有更

新)。

Page 13: cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

3.1.5 AndroidNDK

使用 NDK 的目的为将 C/C++编写的代码生成能在 arm 上运行的*.so 文件。由 android的 java 代码来调用。

AndroidNDK 可 以 从 http://developer.android.com/sdk/ndk/index.html 进 行 下 载 , 截 止

2012-1-19 最新版本为 r7。

3.1.6 Cygwin

Cygwin 为 Linux 模拟环境,因使用 NDK 生成本地*.so 本地库需要用到交叉编译环境,而交

叉编译需要在 linux 系统下才能完成。 Cygwin 可以从 http://cygwin.com/install.html 下载到。(可以选择下载但不安装选项

来创建“本地安装包”) 安装时,在 Cygwin 默认安装配置没有安装 gcc 编译器,我们必须用到的 Devel 类中的四个

组件包,如果嫌找起来过于麻烦,可将 Devel 类从 Default 改为 Install 全部安装也可,四个组件

包为: 1. binutils 组件

Page 14: cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

2. gcc 组件

3. gcc-mingw 组件

4. gdb 组件

5. make 组件

Page 15: cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

安装完成后,运行 Cygwin.bat,输入 make -v 和 gcc -v 如果能找的,则表示安装成功。

3.2 Android可执行文件生成过程

3.2.1 前期准备

1.代码文件:*.h 及*.cpp 注意代码文件中不能含有 unicode 编码,必须使用 ascii 码。 2. 资源文件:工程使用的资源

3.2.2 生成 Android 空工程

1. 进入 cocos2d-x 目录,找到 create-android-project.bat 文件,使用 UE 等编辑工具打开进

行编辑,修改如下项目: 1) cygwin 目录

找到 set _CYGBIN= 在等号后面填入本机 cygwin/bin 目录,如:C:\cygwin\bin 2) <cygwin 的目录>

找到 set _ANDROIDTOOLS= 在等号后面填入本机 Android/tools 目录,如: D:\Android\android-sdk-windows\tools

3) AndroidNDK 目录 找到 set _NDKROOT= 在等号后面填入本机 NDK 目录,如: D:\Android\android-ndk-r7

修改完成后保存关闭。 2. 进入 cocos2d-x 目录中的 cocos2dx 目录,找到 Android.mk 文件,使用 UE 等编辑工具

得开进行编辑,编辑此文件的目的为使用 cocos2d 支持 NDKr7 版本。 在文件的最末尾处找到 LOCAL_CFLAGS := -DUSE_FILE32API,将其修改为 LOCAL_CFLAGS := -DUSE_FILE32API -DGL_GLEXT_PROTOTYPES=1,保存关闭。

3. 运行 cocos2d-x 下的 create-android-profect.bat 文件, 首先输入项目生成目录,至少是双层目录,如:com.MyGame。 回车后会要求输入工程名,最好和目录名一致,如:MyGame。 回车后会要求选择 AndroidSDK 的版本号,一般选择 2.1 以上版本,相应 id 是 4 回车后会在 cocos2d-x 目录中生成一个工程目录,工程目录中含有 android、Classes、Resource 三个子目录。

3.2.3 交叉编译 so 文件

1. 将准备好的代码文件拷贝到工程下的 Classes 目录;资源文件拷贝到工程下的 Resource目录。打开 Classes 目录找到 Android.mk,使用编辑工具打开,在 LOCAL_SRC_FILES := 填入要编译的 cpp 文件,保存后关闭。如: LOCAL_SRC_FILES := AppDelegate.cpp \

Page 16: cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

GameOverScene.cpp \ Joystick.cpp \ TerribleGameScene.cpp

2. 打 开 cygwin , 输 入 工 程 路 径 下 的 Android 文 件 夹 的 完 整 路 径 , 如 : cd d:/makeapk/MyGame/Android 。 然 后 运 行 build_native.sh 文 件 , 具 体 输 入

为:./build_native.sh 3. 编译过程中,如果有错误发生请参考后章节的排错方法进行解决。 4. 补充一点,每次打开 cygwin 并输入完整路径是很麻烦的事情,可以通过下面的方法自

动执行一些命令: 用记事本打开 cygwin 根目录下的.\etc\bash.bashrc 文件,在文件末尾加入欲输入的命令,

例如 cd e: cd APKMAKE/ko/android ./build_native.sh 保存后,下次运行 cygwin 时,这几行命令将自动被执行。

3.2.4 生成 android 系统可用的 apk 文件

1. 打开 eclipse,选择 New->AndroidProfect 创建新的 android 工程。 2. 选择通过已存在的代码创建工程,浏览工程目录下的 android 文件夹,eclipse 会自动填写项

目名,Finish 即可。

Page 17: cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

5. 右键点击创建工程是输入的工程名对应的 java 文件,选择 Run As->Run Configurations 进

入运行设置。在弹出对话框中双击 Android Application 选项,在 Android 选项卡选择好工

程点击 Run 按钮即可。由于真机可用的*.apk 文件将生成于<工程路径>/Android/bin 路径下。

Page 18: cocos2d-x Win32 Android - Software MyZone · 来创建“本地安装包”) 安装时,在Cygwin默认安装配置没有安装gcc编译器,我们必须用到的Devel ... 4

3.3 常见问题汇总

1. awk 过期问题。 在进行编译 so 文件时,AndroidNDK r7 版本有一个 awk 过期问题,进入 NDK 目录下的

prebuilt\windows\bin 文件夹删除 awk.exe 即可。如删除后出现 HOST_AWK 未定义情况,请

前去 http://ftp.gnu.org/gnu/gawk/ 下载 gawk,下载完成后配置一个环境变量,名字是

HOST_AWK,值是指向 gawk.exe 的完整路径名(如:c:/gawk/gawk.exe)。 2. unicode 编码问题。 必须保证所有头文件与代码文件均由 ascii 码编写,使用 unicode 将导致无法正确编译代码。 3. android.mk 编辑问题。 确保所有要编译的文件都填写到了工程路径下的 android.mk 文件中,如未填写会造成数据

类型及函数未定义等编译错误。

4 其它

对 cocos2d-x 中的内存管理机制表示鸭梨很大。据说作者为了照顾 java 程序员制作了这个功

能,引擎会自动回收内存,C 的程序员用起来相当不习惯。注意有个函数是 retain……