cocos2d-x在win7下的Android交叉编译环境

2014年4月14日 cocos2d-x环境配置

前面把Visual Studio+Python开发环境配好了,但还没有讲如何在Android中使用创建好的项目,本篇博客介绍如何在win7下进行Android与cocos2d-x的交叉编译,我的电脑是64,所以下面的配置是基于x86_64下配置的。

下载:Cygwin

Cygwin的主要目的是通过重新编译,将POSIX系统(例如Linux、BSD,以及其他Unix系统)上的软件移植到Windows上。

http://cygwin.com/install.html这里下载

下载成功,安装Cygwin

到了这个界面都是默认下载的,这里需要特别注意一下,需要把Devel改为install,点一下Default就行了。

Devel包含了make命令,不下载的话在导入Eclipse会编译不了。

经过非常漫长的等待,我只想说一句:艹

好,安装完成后,会在C:\cygwin64有以下文件夹:

下载NDK,这个自己到官网下去:http://developer.android.com/tools/sdk/ndk/index.html

小巫把NDK解压缩到了D:/software目录下,需要是全英文,并且不能留空格。

D:\software\android-ndk-r9d

下面开始介绍如何将Cocos2d-x移植到Android中去,为了弄这个我花了好长时间才把它给弄好,过程有点复杂和繁琐。我现在也还不太清楚是否有更好更方便的移植的方法,如果知道的麻烦告知一下:

首先我们要清楚cygwin是用来干什么的,简单来说就是在cygwin下使用NDK对Android项目进行交叉编译。

不知道交叉编译是啥?

交叉编译,简单来说就是在一个平台上生成另一个平台可执行的代码。我们这里就是把Linux下的代码生成windows下能够执行的代码。不知道解析的对不对,各位保留意见。

配置过程:

一、首先我们来对Cygwin配置

打开C:\cygwin64\home\Administrator下的.bash_profile文件,添加以下内容(已ndk实际路径为准我这里的NDK路径为:D:/software/android-ndk-r9d):

# NDK PATH
NDK=/cygdrive/d/software/android-ndk-r9d
export NDK

这里相当于在Linux下配置环境变量。

如果想打开cygwin时候直接进入你项目所在目录:

打开C:\cygwin64\etc\bash.bashrc,在文件末尾添加以下内容

cd d:/software/cocos2d-x-2.2.3/projects

打开cygwin.bat是就会有以下界面:

进入HelloWorld项目:

再键入./build_native.sh就可以编译我们的Android项目了

我们就可以以这样的方式编译项目了,HelloWorld和Test都是我们使用Python创建的,下面会谈到,希望你能耐心读下去,如果实在不行,看看岛国的爱情动作片,撸一把先。

我们将Cocos2d-x程序移植到Android

需要将:D:\software\cocos2d-x-2.2.3\cocos2dx\platform\android\Java\src的org文件夹复制到我们目标项目的src目录下

是不是每次编译项目的时候都要手动复制呢,我们可以这么做,但有一种方法可以每次编译项目的时候,会自动把org文件夹复制到目标项目的src目录下:

我们在cygwin中执行./build_native.sh的时候发现会自动将与proj.android同一个文件下的Resources下的文件,复制到proj.android的assets目录下

比如:D:\software\cocos2d-x-2.2.3\samples\Cpp\HelloCpp\proj.android\assets中的文件就是从Resources中复制过来的

这个复制的过程是已经在Cocos2d-x中的脚本写好的,下面我们一步一步来完成这个复制的过程:

1.   打开C:\cygwin64\home\Administrator下的.bash_profile文件,增加路径:

COCOS2DX_DIR=/cygdrive/d/software/cocos2d-x-2.2.3

export COCOS2DX_DIR

2.   打开D:\software\cocos2d-x-2.2.3\template\multi-platform-cpp\proj.android下的build_native.sh

在33行~36行,有这么一个NDK_ROOT的判断:

我们在它下面也定义一个COCOS2DX_DIR的判断:

if [ -z "${COCOS2DX_DIR+aaa}" ];then

echo "please defineCOCOS2DX_DIR"

exit 1

fi

然后在下面输出COCOS2DX_DIR这个目录

echo "COCOS2DX_DIR = $COCOS2DX_DIR"

到这里还没完事,我们还没看到复制Resource下的文件到proj.android下的assets目录是怎么实现的,我们继续往下看,在62~72行有这样的定义:

通过这个定义,我们就很清楚的看到,cocos2d-x是如何把资源复制到assets目录下的。

所以我们同样可以把D:\software\cocos2d-x-2.2.3\cocos2dx\platform\android\java\src的org文件夹复制到我们目标项目的src目录下,我们可以有这样的定义:

for file in"$COCOS2DX_DIR"/cocos2dx/platform/android/java/src/*

do

if [ -d "file" ]; then

cp -rf"$file" "$APP_ANDROID_ROOT"/src

fi

if [ -f "$file" ]; then

cp"$file" "$APP_ANDROID_ROOT"/src

fi

done

好,到现在为止,Cygwin和Cocos2d-x下的配置已经完成,修改脚本的目的也是为了避免重复性工作,把重复性的工作在脚本中定义好,下次编译项目时就可以自动复制到制定目录下。

上面已经讲了,在HelloWorld目录下,proj.android,执行./build_native.sh就可以进行编译了,编译的过程有点慢,需要耐心等待。。。。,又是等,我艹,不好意思,失态了。

等它编译成功后,在Eclipse将编译好的项目导入:

我们把编译好的HelloWorld项目导入到Eclipse中:

路径如下:D:\software\cocos2d-x-2.2.3\projects\HelloWorld\proj.android

导入完成之后:右键项目->Properties

选择Builders,点击New创建

New_Builder,对应填写以下内容

Location: C:\cygwin64\bin\bash.exe

Working Directory: C:\cygwin64\bin

Arguments: --login -c "cd/cygdrive/d/software/android-ndk-r9d && make APP=HelloWorld"

之后还要增加C/C++ Build:

Path: C:\cygwin64\bin

这里的配置基本上都是固定的,每次导入的项目都按照这样配一次,把自己配好的固定步保存下来,下次再配的时候可以直接复制粘帖。


到现在基本上所有配置已经做好了

最终HelloWorld的项目全貌如下图,红框就是我们编译复制过来的东西。



点击运行,如果以上的步骤没有出错的话,就可以看到经典Helloworld了:

以上内容是小巫参考资料所整理的,如有疑问可知悉。

最后说一句,关于Cocos2d-x,我本人才接触没几天,这几天都在搭建这个环境,我本人基本上把整个流程都仔细过了一遍,也了解了一些配置的作用是什么,我希望其他跟我一样学习cocos2d-x的童鞋,自己学会总结。把自己遇到或者不懂的问题也总结出来,不然你搭过一次这样的环境,然后就忘了。我个人觉得一个环境的配置做得那么复杂那真够呛的,我目前还不知道有更加简单的方法,如果有谁知道可以交流一下。

Cocos2d-x在win7下的android交叉编译环境的更多相关文章

  1. 在win8.1 64位系统+cocos2d-x2.2.3下搭建android交叉编译环境

    搭建前须要下载的软件包(默认已搭建好cocos2d-x而且可在VS上执行,本人VS版本号为2013): 1:java 下载地址:http://www.java.com/zh_CN/download/m ...

  2. window7下 cocos2dx android交叉编译环境部署小结

    上周被android交叉编译搞惨了,还好最后弄好了,写个小结以后备用吧. 步骤,1.下载cygwin的devel和shells模块 2. 2.设置环境变量 a.设置NDK_ROOT b.设置Path ...

  3. Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程)

    Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程) 声明:本教程在参考了以下博文,并经过自己的摸索后实际操作得出,本教程系本人原创,由于升级 ...

  4. (转)Windows7 64位系统搭建Cocos2d-x 2.2.1最新版以及Android交叉编译环境(详细教程) .

    声明:本教程在参考了以下博文,并经过自己的摸索后实际操作得出,本教程系本人原创,由于升级后的cocos2d-x有了一些变化,目前的博文还没有关于Cocos2d-x 2.2.1最新版搭建Android交 ...

  5. Windows7 64位系统搭建Cocos2d-x 2.2.1最新版以及Android交叉编译环境(具体教程)

    原文地址:http://blog.csdn.net/sttyytw/article/details/17005263 声明:本教程在參考了下面博文,并经过自己的摸索后实际操作得出,本教程系本人原创,因 ...

  6. mac os 下搭建android开发环境

    mac os 下搭建android开发环境 周银辉 mac os 下搭建android环境比较方便, 如下几个步骤: 1,安装jdk 先搞清楚自己是否已经安装,在命令行下:java -version, ...

  7. mac 下搭建 Android 开发环境

    因工作需要,要在mac 下搭建 Android 开发环境.谷歌.度娘了好久,没有找个一个完整又系统的方法,很是苦恼.最终,皇天不负有心人,找到了下面这篇文档,结合亲身体验,特此记录.也为有这方面需求的 ...

  8. [转载]在Windows下搭建Android开发环境

    http://jingyan.baidu.com/article/bea41d437a41b6b4c51be6c1.html 在Windows下搭建Android开发环境 | 浏览:30780 | 更 ...

  9. cocos2d-x3.0 macOS下配置Android开发环境以及使用cocos2d-console来新建执行project

    下面是子龙山人录制的关于cocos2d-x3.0的视频教程,macOS下配置Android开发环境.使用cocos2d-console来新建执行project.怎样执行cocos2d-x 3.0win ...

随机推荐

  1. PhpStorm+XAMPP+Xdebug 集成开发和断点调试环境配置

    0x01 Xdebug安装 参考:https://xdebug.org/docs/install cd xdebug-/ phpize sudo ./configure --enable-xdebug ...

  2. 我们是怎么实现Grpc CodeFirst

    前言: Grpc默认是ProtoFirst的,即先写 proto文件,再生成代码,需要人工维护proto,生成的代码也不友好,所以出现了Grpc CodeFirst,下面来说说我们是怎么实现Grpc ...

  3. MySQL MyISAM和Innodb表生成序列

    目录 背景 分析 测试 结论 背景 应用端需要生成依次递增的序列来做流水序号等,方案有1.redis /MySQL SEQUENCE引擎生成序列:2.MySQL中myisam表 replace int ...

  4. PyTorch 实战-张量

    Numpy 是一个非常好的框架,但是不能用 GPU 来进行数据运算. Numpy is a great framework, but it cannot utilize GPUs to acceler ...

  5. 学习 MyBatis 的一点小总结 —— 底层源码初步分析

    目录 MyBatis 如何获取数据库源? MyBatis 如何获取 sql 语句? MyBatis 如何执行 sql 语句? MyBatis 如何实现不同类型数据之间的转换? 在过去程序员使用 JDB ...

  6. flask前后端输出html页面(数组遍历)

    通过flask,输出页面 后端代码文件:app.py 前端html文件:output.html 1.打开(app.py) 导入相关模块: 2.定义方法:(app.py) 3.写入与后端定义好的参数:( ...

  7. [codevs2597]团伙<并查集>

    题目描述 Description 1920年的芝加哥,出现了一群强盗.如果两个强盗遇上了,那么他们要么是朋友,要么是敌人.而且有一点是肯定的,就是: 我朋友的朋友是我的朋友: 我敌人的敌人也是我的朋友 ...

  8. 微信网页授权,获取微信code,获取access_tocken,获取用户信息

    微信开发中,经常有这样的需求:获得用户头像.绑定微信号给用户发信息.. 那么实现这些的前提就是授权!   1.配置安全回调域名: 在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 ...

  9. Maven多模块项目+MVC框架+AJAX技术+layui分页对数据库增删改查实例

    昨天刚入门Maven多模块项目,所以简单写了一个小测试,就是对数据库单表的增删改查,例子比较综合,写得哪里不妥还望大神赐教,感谢! 首先看一下项目结构: 可以看到,一个项目MavenEmployee里 ...

  10. Azure多因素认证

    什么是多重身份验证? 双重验证是需要多种验证方法的身份验证方法,可为用户登录和事务额外提供一层重要的安全保障. 它的工作原理是需要以下两种或多种验证方法: 用户知道的某样东西(通常为密码) 用户具有的 ...