Cocos2d-x基础环境搭建

Cocos2d-x基础环境搭建

 

 JDK,SDK,ADT就不说了。

一.首先必须搭建NDK环境

注:NDK的版本必须是r5或之上的版本。

戳这里:Android NDK官方下载

解压即可。

 

二.其次装Cygwin 

科普下:cygwin是什么?

官网上的简介是这样的

Cygwin is:

  • a collection of tools which provide a Linux look and feel environment for Windows.
  • a DLL (cygwin1.dll) which acts as a Linux API layer providing substantial Linux API functionality.

Cygwin is not:

  • a way to run native Linux apps on Windows. You must rebuild your application from source if you want it to run on Windows.
  • a way to magically make native Windows apps aware of UNIX® functionality like signals, ptys, etc. Again, you need to build your apps from source if you want to take advantage of Cygwin functionality.

 

英语四级神译如下:

Cygwin 是:

  • 一个在windows下提供linux界面外观的集成工具.
  • 一个起着“Linux API层”作用的动态链接库,提供实质的Linux API功能.

Cygwin 不是:

  • 一种在Windows下运行原生Linux程序的方法。如果你想让它在Windows下跑,必须rebuild你的程序源码。
  • 一种可以让windows应用理解Unix方法,比如signal,pty神马的。同理,你想利用cygwin功能,就得build你的应用的源文件。

 

1.下载:Cygwin的下载地址:http://www.cygwin.com/

2.安装:安装很简单,有两个目录要选择,一个是下载缓存目录,一个是安装目录。

也就是说,别人装过Cygwin的话,如果没有新的包要下载,我们完全可以把缓存文件整个导过来,用离线安装模式安装,这样就不用忍受在线安装时候站点无效和下载速度慢的问题了。

如果是在线安装,请选择Devel把它点成install就好了。

3.接下来:可以先去干别的了,即使是离线安装也很慢,更别说在线了。这时间吃个饭泡个妞没问题。

4.创建用户:安装完成之后,运行安装目录下的Cygwin.bat文件,第一次运行会给你创建用户信息,这下你的home文件夹下就有以你名字命名的文件了。

5.测试:在运行“Cygwin.bat”打开的命令行窗口输入:“cygcheck -c cygwin”命令,会打印出当前Cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。

分别输入:“make –v”和,“gcc –v”命令如果检测成功,会有make和gcc相关版本信息打印出来。

6.设置NDK路径: 

注意:把ndk路径设置成环境变量的时候,请用linux风格

例:/cygdrive/e/android-ndk-r8c 

 

 

三.编译NDK自带例子

 

1.Cygwin 一路cd 到sample里的hello-jni里面,图为未编译时的目录结构:

 

2.输入命令“$ndk/ndk-build”命令即可编译。ndk-build是调用ndk的编译程序。

编译后变成这样了:

然后看看libs\armeabi里面,有一个libhello-jni.so文件,有意味着你的ndk是正常的。

而这个so文件,是动态链接库,编译后后形成的新物种,具体过程如下:

$ gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so

(-shared 该选项指定生成动态连接库(让连接器生成T类型的导出符号表,有时候也生成弱连接W类型的导出符号),不用该标志外部程序无法连接。相当于一个可执行文件)
(-fPIC:表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的所以动态载入时是通过代码拷贝的方式来满足不同进程的需要,而不能达到真正代码段共享的目的。)

 

3.导入NDK的hello-jni示例到Eclipse中:

没难度,Create project from existing source~必须要有.so文件哦

导入后会出现很多Android的文件,忍看少妇变人妻。

 

 

 

 

 

四.CDT

CDT下载地址 http://www.eclipse.org/cdt/downloads.php

1.请选择对应的eclipse版本,不过我在Juno上跑CDT8.0.2 for Indigo 也可以安装,所以应该是高版本eclipse可以兼容低版本的CDT。 

2.下载后,安装方法和adt一样,不会的自行在谷歌上百度一下。

3.插件装完后,新建项目,如果有C/C++目录,就说明成功了。

 

 

五.安装Sequoyah插件

这是什么?维基百科上书:

Sequoyah project's purpose is to be focused on the needs of all mobile developers.
Inheriting components from TmL, MTJ and Pulsar projects, Sequoyah intends to remove the artificial barriers of Linux and Java in order to provide a home for all Eclipse mobile developers.

四级神翻译如下:Sequoyah 专注移动开发者的需求,继承于TmL, MTJ and Pulsar这些项目,Sequoyah 想消灭Linux和java的人工障碍,为所有用eclipse做移动开发的同志们营造一个窝。

=口=听起来很霸气吧。

这个很小,在线装吧,和adt,cdt一样装法。

注意:

在安装界面不要勾选“Group items by category”复选框,默认是勾选的,出现了列表为空(There are no categorized items)的情况。

安装地址:http://download.eclipse.org/sequoyah/updates/2.0/

 

 

 

六.JNI编译环境配置

仍旧以之前建立的“HelloJni”为例,到目前为止,如果我们修改“/HelloJni/jni/hello-jni.c”文件,动态链接库libhello-jni.so文件却不会被重新编译生成。

运行的还是以前的版本,有图有真相。

 

第一步:转换工程。点击“文件 -> 新建 -> 其他”(快捷键:Ctrl+N)。选择“C/C++”下的“Convert to a C/C++ Project(Adds C/C++ Nature)”。进入“下一步”。

第二步:选中你刚才建的“HelloJni”工程,下面左边选“Makefile project”右边选“Cygwin GCC”。确定。(要是没有这个工程就是你已经转过了)

第三步:在“HelloJni”工程上右键,选择“属性”。

C/C++ Build:点击“C/C++ Build”,在右边的“Builder Settings”中去掉默认勾选的“Use default build command”复选框。设置Build command为“bash e:\android-ndk-r8c\ndk-build”。

C/C++ General ->  Paths and Symbols:在Includes下add新的GNU C依赖路径。此“HelloJni”工程需要“E:\android-ndk-r8c\platforms\android-8\arch-arm\usr\include”即可,以后根据不同项目选择不同的依赖库。 

再次run as Android Application 

控制台显示如下:

**** Build of configuration Default for project com.example.hellojni.HelloJni ****
 

bash e:\android-ndk-r8c\ndk-build all 

Gdbserver      : [arm-linux-androideabi-4.6] libs/armeabi/gdbserver

Gdbsetup       : libs/armeabi/gdb.setup

Compile thumb  : hello-jni <= hello-jni.c

SharedLibrary  : libhello-jni.so

Install        : libhello-jni.so => libs/armeabi/libhello-jni.so

 

**** Build Finished ****

就是舒心啊

成功了。

 

七.现在终于要弄游戏引擎了  

官网:http://cn.cocos2d-x.org/ 

请先下载一个游戏引擎的压缩包,请看官网: 

=口=,阿嘞~好多,这可如何是好。

经过我三天的蛋疼测试,得出了如下结论:

1.首先,请正视现实,有Android真机且系统版本>=2.2的,酌情下载较新版本

2.没有Android的诺基亚屌丝或者Iphone高富帅或者像我这样公司USB口暂不开放的苦逼,请对cocos2d-2.0以上的版本挥手说再见。因为从cocos2d-2.0开始,引擎使用了openGL es 2.0,

Eclipse那个模拟器退散吧,即使听说4.0.3及以上版本的模拟器支持了openGL,经过我测试4.0.3,4.1.2,4.2,结论是no。(一定是我开门的方式不对)。如果可以,请大家一定告诉我!帮助菜鸟人人有责,谢谢! 

目前准备在VMware Workstation上跑Android x86 试试(最高版本是4.0哦)。

3.关于第一点,酌情下载新版本的原因是,cocos-2d-x,每次更新,java包的源码就要更新好多,所以网上的例子,是旧版本,自带的例子,我由于模拟器问题一直搞不定,也没跑起来,所以,和我一样很菜的,请用旧版吧。

 

八.Cocos2dx配置:

1.下载解压后,用文本编辑器打开create-android-project.bat

将_CYGBIN设置为cycgwin\bin安装的的绝对路径。

将_ANDROIDTOOLS设置为android sdk 的tools绝对路径

将_NDKROOT设置为android ndk的绝对路径

修改完毕,保存后

2.双击create-android-project.bat开始创建工程

输入包名--项目名--然后根据列表选版本,完事儿~

PS:关于cocos2d-2.0-x-2.0.3 @ Sep 26 2012 这个新版本,发现有一个bug:

即用create-android-project.bat生成Android项目的时候,本来应该在项目中的org.cocos2dx.lib包下的文件集体消失了。

手动倒进来当然可以,目录:E:\cocos2d-2.0-x-2.0.3\cocos2dx\platform\android\java\src\org\cocos2dx\lib 但是每次都这样,我都忍不住要说:尿烦内~ 打开E:\cocos2d-2.0-x-2.0.3\template\android目录下的copy_files.sh文件, 找到copy_src_and_jni()修改为,即增加cp -rf $COCOSJAVALIB_ROOT/src $APP_DIR/proj.android,哟嗬嗬,搞定。
整段代码在此:
copy_src_and_jni(){ cp
-rf $HELLOWORLD_ROOT/proj.android/jni
$APP_DIR/proj.android cp -rf $HELLOWORLD_ROOT/proj.android/src
$APP_DIR/proj.android cp -rf $COCOSJAVALIB_ROOT/src $APP_DIR/proj.android # replace Android.mk sh $COCOS2DX_ROOT/template/android/gamemk.sh
$APP_DIR/proj.android/jni/Android.mk $NEED_BOX2D $NEED_CHIPMUNK $NEED_LUA }

创建工程完毕,去cocos2dx主目录看看,有一个新的项目出现 

打开cygwin,一路cd到你刚刚新建的项目的proj.android下(注意:低版本是android文件夹,大家见机行事),然后./build_native.sh

WindosXp成功了,win7悲剧了,win7的文件权限问题让编译无法通过,悲剧的同学请找到main.cpp给它把权限都加上。

然后再次编译,也就是./build_native.sh,成功后会生成.so文件。

 

工程导入eclipse,运行。总算是跑起来了。 

好累,感觉不会再爱模拟器了。=口=

 

后续:在尝试过AndroidX86后依然跑不起cocos2dx2.0以上版本,发现了一个新的模拟器,叫 BlueStack,灰常好用,Mac和Windows版都有,

以前跑不起来的2.0的demo也跑起来了~~不用谢,叫我雷锋就好了。官网地址:http://www.bluestacks.net.cn/

 

转载注明来源哦~http://www.cnblogs.com/huangquanhj/archive/2012/12/16/2820754.html

posted @ 2012-12-16 19:16  黄泉hj  阅读(4757)  评论(1编辑  收藏  举报
沪江在线词典