pomelo+cocos2dx+vs2012 win32编译 android编译
操作方法
- 01
今天想分享一下在学习cocos2dx的过程当中,由于通信的服务器是选择了基于Node.js 的pomelo的开源的游戏服务器,然而这个开源的服务器封装了自己的通信协议,如果想要写一个跨平台的客户端的话,首先你要封装底层的linux,window,ios的通信框架之外,还要写一个json的解析集合,然后在封装与服务器的协议。对于小公司来说这个是何其的麻烦,为了便捷考虑,决定利用与pomelo提供的一个开源的libpomelo(C语言)的客户端,然后编译到cocos当中。虽然说官方有相关的方法,但是不是很明确。本人在配置过程中也是搜寻了其他大神的各种经验,然后终于配置成功了。下面就是相关的步骤。
- 02
环境要求:cocos2d-x vs2012 libpomelo( PS官方下载的libpomelo的名称是libpomelo_master,建议修改为libpomelo,否则后面的过程,特别是android 编译的时候会出错)
- 03
首先来说明在利用上述的软件在window上运行。假设你已经安装了vs2012,然后已经创建了cocos2dx的工程了,然后已经下载了libpomelo_master(记得修改名字) 解压到 cocos2d-x-2.2.3\cocos2dx\platform\third_party\win32 。
- 04
接着进入到libpomelo的文件夹内,打开libpomelo的工程到vs2012 然后点击libpomelo生成,将会在cocos2d-x-2.2.3\cocos2dx\platform\third_party\win32\libpomelo-master\Default\lib 中生成三个lib库(jansson.lib,libpomelo.lib,libuv.lib)。
- 05
紧接着打开你已经生成好的cocos项目(当然也vs2012)然后在解决方案那里点击‘添加’-》‘现有项目’-》 y依次把libpomelo.vcxproj,/dep/jansson/jansson.vcxproj,/dep/uv/libuv.vcxproj 添加到项目中。
- 06
然后点击你生成的项目‘属性’-》‘C/C++’ -》‘常规’-》‘附加包含目录’添加cocos2d-x-2.2.3\cocos2dx\platform\third_party\win32\libpomelo-master\include,cocos2d-x-2.2.3\cocos2dx\platform\third_party\win32\libpomelo-master\deps\jansson\src,cocos2d-x-2.2.3\cocos2dx\platform\third_party\win32\libpomelo-master\deps\uv\include(三个项目的头文件的目录)。
- 07
再接着‘属性’-》‘链接器’-》‘常规’-》‘附加库目录’把生成的三个库添加到路径中(也就是刚才说的lib的路径,cocos2d-x-2.2.3\cocos2dx\platform\third_party\win32\libpomelo-master\Default\lib )
- 08
再接着‘属性’-》‘链接器’-》‘输入’-》‘附加依赖项’ 添加jansson.lib,libpomelo.lib,libuv.lib
- 09
到现在基本上就ok了,但是在利用的时候需要注意一下在你的网络的主文件中包含下面的相关代码,不如就会出现libuv的编译错误#pragma comment(lib,"ws2_32.lib")#pragma comment(lib, "libuv.lib")#pragma comment(lib, "IPHLPAPI.lib")#pragma comment(lib, "Psapi.lib")
- 10
好的现在你就可以编译了,就可以利用libpomelo提供的东西了,希望对你有用。
- 11
下面我们来说说如何编译可在android上面使用的cocos2d+libpomelo
- 12
在上面已经生成的基础上,我们来测试官放提供的一个客户端pomelo-cocos2dchat-master。
- 13
需要将我们下载下来的libpomelo_master解压到cocos2d-x-2.2.3\cocos2dx\platform\third_party\android\prebuilt。然后修改libpomelo_master 为libpomelo。
- 14
首先下载pomelo-cocos2dchat-master,然后解压出来(没有什么特殊的位置)
- 15
然后将pomelo-cocos2dchat-master\Classes 下的文件复制到你的项目的Classes文件夹下(记得要在利用pomelo.h的文件中添加#pragma comment(lib,"ws2_32.lib")#pragma comment(lib, "libuv.lib")#pragma comment(lib, "IPHLPAPI.lib")#pragma comment(lib, "Psapi.lib")),把pomelo-cocos2dchat-master\Resources 下的资源复制到你的项目的Resources下,然后用pomelo-cocos2dchat-master\Android.mk 替换你的项目下面的proj.android\jni\Android.mk。
- 16
接着修改你的项目下的proj.android\jni\Application.mk 成为APP_STL := gnustl_staticAPP_CPPFLAGS := -frtti -DCC_ENABLE_CHIPMUNK_INTEGRATION=1 -DCOCOS2D_DEBUG=1APP_PLATFORM := android-9 // android的平台APP_ABI := armeabi armeabi-v7a x86 // 各种cpu类型
- 17
上面的准备工作做好了,接着下载adt-bundle-windows-x86-20140321,android-ndk-r9d,cygwin2.738(ba版本不一定要和我一样)。接着安装cygwin,建议安装全部的组件。
- 18
接着进入到cygwin bash shell,然后vim .bash_profile 到文件最末,添加NDK_ROOT=/cygdrive/...你的NDK的根目录的路径( PS:在cygwin下的路径)。如果报NDK_MODULE_PATH的错误的话,还可以添加NDK_MODULE_PATH=/cygdrive/...cocos的路径:/cygdrive/...cocos2d-x-2.2.3\cocos2dx\platform\third_party\android\prebuilt:( PS:在cygwin下的路径,多个路径用‘:’分开)
- 19
基本上的工作就结束了,然后进入到你的项目的proj.android/ 下,执行sh build_native.sh 或者是./build_native.sh(本质上是执行ndk-build命令)。等命令执行完了就生成了基本的android的项目了。
- 20
接着打开你adt-bundle-windows-x86-20140321 创建android项目,(PS:记得在创建项目的时候,选择‘以现有的android代码创建:我是翻译过来的’,也就是说选择刚才生成的proj.android的代码来创建android项目就行了,可能还是需要配置一下NDK_root的路径,这个到 ‘ window ’ -》‘C/C++’-》‘build’-》‘Environment’-》‘添加NDK_ROOT变量,值为NDK的window下的路径’)。
- 21
OK,基本上所有的工作就完成了,直接运行你的android项目就行了,希望你能成功,相信你也能成功