Upload
hoangngoc
View
281
Download
0
Embed Size (px)
Citation preview
COCOS2D-X 配置手册 (Win32、Android)
编制:刘勤熙 李育 完成日期:2012-1-19
目录 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
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, 进行如下配置:
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 配置文档)
然后选择 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\
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
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"
"....上一个增量链接没有生成它;正在执行完全链接..."
处理:
这是微软的一个漏洞, 下载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 按钮。
再次点选 Next 按钮后出现软件许可窗口,需要勾选同意,然后点击 Finish 按钮 eclipse 会开
始下载 ADT 插件。完成后重新启动可以在 File->New->Project 菜单下找到 Android Project证明 ADT 更新成功
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 会开始安装。同样,在安装过程中有一次同意软件协议选项的勾选。
完成后 eclipse 会要求重启软件,OK 即可。重启 eclipse 后选择 New->Projec 会发现 eclipse已经支持 C/C++项目。
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 包均有更
新)。
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 组件
2. gcc 组件
3. gcc-mingw 组件
4. gdb 组件
5. make 组件
安装完成后,运行 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 \
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 即可。
5. 右键点击创建工程是输入的工程名对应的 java 文件,选择 Run As->Run Configurations 进
入运行设置。在弹出对话框中双击 Android Application 选项,在 Android 选项卡选择好工
程点击 Run 按钮即可。由于真机可用的*.apk 文件将生成于<工程路径>/Android/bin 路径下。
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……