windows eclipse c++ cocos2dx 游戏开发环境筹建

windows eclipse c++ cocos2dx 游戏开发环境搭建
这篇文档有几个图片,但是贴图太麻烦了,如果有兴趣看完整版的话可以去这个地址下载doc文档
http://download.csdn.net/detail/yixiaoqingyuz/4858144

一,目的:
我们做任何事情都有目的,包括一些别人看起来毫无意义的事情,所谓别人笑我太疯癫,我笑他人看不穿说的就是这事。cocos2dx真的不错,特别是当我迫不得已使用vs建了个Windows工程把sdk提供的simplegame在Windows上面跑起来以后,我觉得这个真棒,你想,我本来必须要放到手机上才能运行的代码,现在很容易就可以在Windows上运行和调试,多美妙的事情。但是我真的不愿意在vs上写代码,很不熟悉,即使我上网找了些vs的快捷键使用,依然不能够像在eclipse上面一样方便*的写代码。所以虽然都说vs强大,好用,是世界上最好的ide(这个我表示很怀疑),但是我依然对eclipse痴心不改,所以,虽然能在vs上写代码了,我依然没有放弃找一个方法来配置eclipse,终于,在我费尽心力受尽摧残花费无数廉价的时间后终于成功了。古人说,己所不欲勿施于人。我的目的很简单,想发扬一下古人的优良传统,写篇文档记录下来,帮助其他有需要的人快速的达到目的不走弯路,也帮助自己以后回忆,毕竟好记性不如烂笔头。

废话说了很多,现在进入正题。

二,目标:
我们的目标是没有蛀牙。。。。开玩笑。
目标有几个
1.在eclipse中编写c++代码,而且要有代码提示。
2.能够很方便的在eclipse里面查看cocos2dx的源代码。
3.在eclipse里面自动编译有c++代码的android项目并运行和打包。
4.其实还想在eclipse里面实现c++代码的调试,只是这个步骤暂时还没有摸索出来。

三,前提条件:
1.eclipse中有adt和cdt插件(一般现在的adt插件已经集成cdt了)
2.尽量新点的ndk版本(太旧的需要安装cygwin才能进行ndk编译,新的几个版本已经可以在widows中直接编译了)
3.coco2dx源码。
4.应该对android的android.mk文件语法有一定的了解(可选,即使啥也不知道按部就班的来也能配置成功,但是最后还是有所理解,这样才能理解coco2dx的目录结构为什么是这个样子,为什么能够编译成功。这里有篇文章可以参考一下:http://blog.sina.com.cn/s/blog_6bdbc71601010v5x.html)
5.至少安装一个用于eclipse纯c++项目编译的工具,(Mingw,或者sygwin,需要这个是因为在编写c++代码时如果用adt提供的编译器项目会有错误,导致无法编译)

四,注意事项:
之所以现在就说注意事项是因为这关系到整个过程能否顺利进行下去。
需要注意的是,用coco2dx提供的脚本生成的android项目是以跨平台为前提的,他的目录结构是为了方便多平台并行开发(不知道我这个理解是否正确,如果错了高人可以指出来),所以,你会发现Classes这个文件夹在android项目外面,但是如果你不是很懂android的ndk编译这一套东西的话,就不要试图去把这个文件夹拷贝到android项目的jni目录下面,也不要拷到别的地方去,这样不但会不利于跨平台开发,还有可能导致编译不过,就维持用脚本生成以后的目录结构就好了。

五,步骤:
1.导入coco2dx的android库(如果你之前已经导入过了就不需要再做这步了)。
也即是\cocos2d-2.0-x-2.0.3\cocos2dx\platform\android\java这个项目。

2.导入你用cocos2dx提供的脚本生成android项目,这里以2dx提供的simplegame例子为例。
也即是cocos2d-2.0-x-2.0.3\samples\SimpleGame\proj.android
导入以后右键这个项目,设置它引用第一步导入的coco2dx项目。如图
windows eclipse c++ cocos2dx 游戏开发环境筹建

3.为2中导入的simplegame项目新建一个builder。
右键点击该项目,选择Properties,在左侧上面部分选中builders项,这时可以看到右侧面板有一个new按钮,点击new按钮,在弹出的对话框中选中下面的Program,ok
弹出新的对话框,有如下内容
windows eclipse c++ cocos2dx 游戏开发环境筹建
其中Location处选择你的ndk目录下面的ndk-build.cmd文件(这就是为什么说ndk要新点的版本了,旧的没有这个文件)
Working Directory通过Browse Workspace选择simplegame项目。

然后切换到Refrash标签确认windows eclipse c++ cocos2dx 游戏开发环境筹建已经选中。

切换到Envirenment标签,点击new按钮,在弹出的对话框中name一项填NDK_MODULE_PATH(为什么填这个呢?这就是我之前说的要对android.mk这个文件的语法有一定的了解了,在编译时,需要coco2dx,box2d等静态库,这里就是配置这些静态库的父路径了,在android.mk文件中只要写子路径就会在这里配置的父路径下搜索对应的静态库来进行链接了,具体写法见$(call import-module,CocosDenshion/android) 这种语句),Value项填类似这种路径你的cocos2dx解压以后放置目录\cocos2d-2.0-x-2.0.3; 你的cocos2dx解压以后放置目录 \cocos2d-2.0-x-2.0.3\cocos2dx\platform\third_party\android\prebuilt
填好后点击ok。

切换到Build Options,可以看到下面有Specify working set of relevant resources这项,选中它后发现他右边的按钮可以点击了
windows eclipse c++ cocos2dx 游戏开发环境筹建
点击右边的按钮,在弹出的对话框中展开simplegame项目,勾上jni目录,在后面还会引入classes文件夹,到时候记得回来也勾上,因为以后我们写c++代码主要就在这个文件夹下面写了,这里先放过,选好后点击finish按钮关闭对话框。

最后点击大对话框的ok按钮,在这之前也可以给这个builder起个名字
windows eclipse c++ cocos2dx 游戏开发环境筹建
第3步到此结束。

4.将android项目转为c++项目,当然转了以后android项目还是android项目,只是可以支持编写c++代码了
右键simplegame项目,new,Convert to a C/C++ Project(如果看不到这项就点击other,展开c++)
windows eclipse c++ cocos2dx 游戏开发环境筹建
点击Convert to a C/C++ Project会弹出一个对话框,按如下选中,是的这里看到android gcc这一项,但是不要选它,我们不会用到他,即使Cygwine gcc我们也不会用到,但是这里需要选中他。
windows eclipse c++ cocos2dx 游戏开发环境筹建
接下来我们点击完成以后,我们再次右键simplegame项目,打开Properties,切到Builders界面,这时候可以看到,相对应普通的android项目而言这里多了3个builder
windows eclipse c++ cocos2dx 游戏开发环境筹建
我们需要取消掉cdt builder和Scanner Configuration Builder两项,取消以后点击ok。

5.引入cocos2dx及项目源码。
右键simplegame项目,选择Properties,展开c++ General选择Path and Symbols,点击Includes标签项,选中Assembly,点击add按钮,在弹出对话框中填入如下路径:
你的ndk放置目录\android-ndk-r8c\platforms\android-8\arch-arm\usr\include同时选中下面图中两项
windows eclipse c++ cocos2dx 游戏开发环境筹建
点击ok。
同样的方法把以下两项也添加进来:
你的cocos2dx放置目录\cocos2d-2.0-x-2.0.3\CocosDenshion\include
你的cocos2dx放置目录\cocos2d-2.0-x-2.0.3\cocos2dx\include

切换到Source Location标签,点击Link Folder按钮,如下图,选中后再点击Browse按钮windows eclipse c++ cocos2dx 游戏开发环境筹建
在弹出的对话框中选择以下路径,然后点击ok:
你的cocos2dx放置目录\cocos2d-2.0-x-2.0.3\samples\SimpleGame\Classes(这里只是举例,实际上这个目录是你用create android project这个脚本生成的android项目里面的Classes文件夹的路径)
同样的方法把coco2dx也引入进来,路径如下:
你的cocos2dx放置目录\cocos2d-2.0-x-2.0.3\cocos2dx
点击Apply按钮保存设置。

把视线重新转到左侧的c++ General项,选中Code Analysis,设置如下图所示,要求一模一样。设置这个的目的是因为eclipse cdt插件对代码解析不够好,很多正确的代码会解析成错误的提示出来,导致无法编译。
windows eclipse c++ cocos2dx 游戏开发环境筹建

还记得我们在第3步配置buider的时候说classes文件夹要等后面在配置吗,现在已经可以配置了,切换到Builder页,选中我们之前建好的Builder,点击edit按钮就可以编辑了。

最后,点击ok按钮,大功告成,一般来讲,这个时候在你点击完ok按钮以后项目就会开始编译了,这会花费不少时间。

以后我们就可以在eclipse里面写c++代码了,按照coco2dx跨平台的思想,一些平台无关的代码一定要放在classes下面编写。

六,参考文章:

这篇文章讲了mac电脑上ios xcode和android eclipse配置,在编译器配置上跟我这里不同
http://www.raywenderlich.com/11283/cocos2d-x-for-ios-and-android-getting-started

这篇文章讲了android的编译系统,也就是android.mk的语法的东西
http://blog.sina.com.cn/s/blog_6bdbc71601010v5x.html



PS:如果有高人知道怎么在eclipse里面调试c++代码也请不吝赐教了,在这里回帖或者发到我邮箱都可以,邮箱地址:yixiaoqingyuz@163.com