COCOS2DX 安卓WIN32下配置手册

时间:2023-02-06 22:38:29

 

 

COCOS2D-X配置手册

(Win32、Android)

目录

1.   引言... 3

2.   cocos2d-xWin32环境配置... 3

2.1 win32开发环境配置...3

2.1.1 Visual Studio 2008.3

2.1.2 cocos2d-x.3

2.1.3 (可选)VisualAssist X..3

2.1.4 (可选)doxygen.4

2.2 Win32 可执行文件生成过程...5

2.3 常见问题总汇...7

3    cocos2d-xAndroid 环境配置... 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对注释中的拼写进行校正(即去掉单词下面的波浪线提示),可以选择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"