COCOS2D-X配置手册
(Win32、Android)
目录
3.2.4 生成android系统可用的apk文件...16
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对注释中的拼写进行校正(即去掉单词下面的波浪线提示),可以选择VisualAssist 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 errorduring IncrBuildImage"
"....上一个增量链接没有生成它;正在执行完全链接..."
处理:
这是微软的一个漏洞, 下载KB948127补丁, 安装即可.
如果不能正常安装, 也可以把VS9中的增量编译关掉:
项目名处点右键, 依次选择->属性->配置属性->链接器->常规->启用增量链接(否)
以后再遇上此类问题, 可以尝试再次编译或者清理后重新生成.
3. 错误:
"....error LNK2019: 无法解析的外部符号...."
处理:
lib没有添加依赖
工程 点右键->属性->配置属性->链接器->输入附加依赖项 填入以下lib文件
libcocos2d.lib libgles_cm.liblibBox2d.lib libchipmunk.lib libcurl_imp.lib libCocosDenshion.lib
libjpeg.lib libpng.lib liblua.liblibxml2.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文件夹的完整路径,如:cdd:/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文件,选择RunAs->Run Configurations进入运行设置。在弹出对话框中双击AndroidApplication选项,在Android选项卡选择好工程点击Run按钮即可。由于真机可用的*.apk文件将生成于<工程路径>/Android/bin路径下。
常见问题汇总
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文件中,如未填写会造成数据类型及函数未定义等编译错误。
其它
对cocos2d-x中的内存管理机制表示鸭梨很大。据说作者为了照顾java程序员制作了这个功能,引擎会自动回收内存,C的程序员用起来相当不习惯。注意有个函数是retain……
NDK_ROOT="/cygdrive/D/android-ndk-r8"