基于 Android NDK 的学习之旅-----环境搭建

工欲善其事 必先利其器 , 以下介绍下 Eclipse SDK NDK Cygwin CDT 集成开发环境的搭建。

1、Android 开发环境搭建

Android开发环境搭建不是重点,相信看此文章的非常多人都已经搭建成功,这里随便概述性的说说。

1)      下载 JDK

2)      下载 Eclipse

3)      下载 Android SDK

4)      启动Eclipse , 安装 ADT

2、下载安装Android NDK

NDK下载戳这里: https://dl.google.com/android/ndk/android-ndk-r9d-windows-x86.zip

3、下载安装cygwin

因为NDK编译代码时必需要用到make和gcc,所以你必须先搭建一个linux环境。 cygwin是一个在windows平台上执行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,很实用。

通过它,你就能够在不安装linux的情况下使用NDK来编译C、C++代码了。以下我们一步一步的安装cygwin吧。

(安装的时候忘记截图了)

首先。你得先跑到http://www.cygwin.com下载setup.exe

1、 然后双击执行吧,执行后你将看到安装向导界面:

2、  点击下一步

此时让你选择安装方式:

1)Install from Internet:直接从Internet上下载并马上安装(安装完毕后,下载好的安装文件并不会被                   删除。而是仍然被保留。以便下次再安装)。

2)Download Without Installing:仅仅是将安装文件下载到本地。但临时不安装。

3)Install from Local Directory:不下载安装文件,直接从本地某个含有安装文件的文件夹进行安装。

3、选择第一项,然后点击下一步:

4、选择要安装的文件夹,注意,最好不要放到有中文和空格的文件夹里,似乎会造成安装出问题,其他选项不用变。                  之后点下一步:

5、上一步是选择安装cygwin的文件夹,这个是选择你下载的安装包所在的文件夹,默认是你执行setup.exe的目                      录。直接点下一步就能够:

6、此时你共同拥有三种连接方式选择:

1) Direct Connection:直接连接。

2) Use IE5 Settings:使用IE的连接參数设置进行连接。

3) Use HTTP/FTP Proxy:使用HTTP或FTP代理server进行连接(须要输入server地址、port号)。

用户可依据自己的网络连接的实情情况进行选择,一般正常情况下,均选择第一种,也就是直接连接方式。然后               再点击“下一步”,

7、 这是选择要下载的网站,我用的是http://mirrors.kernel.org,速度感觉还挺快。选择后点下一步

8、 此时会下载载入安装包列表

9、Search是可以输入你要下载的包的名称。可以高速筛选出你要下载的包。

那四个单选button是选择下边树的样式,默认即可,不用动。View默认是Category,建议改成full显示所有包再查,省的一些包被隐藏掉。左下角那个复选框是是否隐藏过期包。默认打钩。不用管它即可。下边開始下载我们要安装的包吧。为了避免所有下载,这里列出了后面开发NDK用得着的包:autoconf2.1、automake1.10、binutils、gcc-core、gcc- g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make共12个包

10、  然后開始选择安装这些包吧。点skip。把它变成数字版本号格式,要确保Bin项变成叉号,而Src项是源代码,这个就不是必需选了。

11、  以下測试一下cygwin是不是已经安装好了。

执行cygwin,在弹出的命令行窗体输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本号和执行状       态,假设status是ok的话。则cygwin执行正常。

然后依次输入gcc –version,g++ --version,make –version,gdb –version进行測试(或,输入make -v 和 gcc -v ),假设都打印出版本号信息和一些描写叙述信息,很高兴的告诉你,你的cygwin安装完毕了!

4、配置NDK环境变量

1、  首先找到cygwin的安装目录,找到一个home\<你的username>\.bash_profile文件,我的是:E:\cygwin\home\Administrator\.bash_profile,(注意:我安装的时候我的home目录以下神马都没有。解决的办法:首先打开环境变量。把里面的用户变量中的HOME变量删掉,在E:\cygwin\home目录下建立名为Administrator的目录(是username),然后把E:\cygwin\etc\skel\.bash_profile复制到该目录下)。

2、  打开bash_profile文件。加入NDK=/cygdrive/<你的盘符>/<android ndk 文件夹> 比如:NDK=/cygdrive/e/android-ndk-r5

export NDK

NDK这个名字是随便取的,为了方面以后使用方便。选个简短的名字,然后保存

3、打开cygwin。输入cd $NDK,假设输出上面配置的/cygdrive/e/android-ndk-r5信息,则表明设置环境变量成功了。

5、用NDK来编译程序

1、  如今我们用安装好的NDK来编译一个简单的程序吧,我们选择ndk自带的样例hello-jni,我的位于E:\android-ndk-r5\samples\hello-jni(依据你详细的安装位置而定),

2、 执行cygwin。输入命令cd /cygdrive/e/android-ndk-r5/samples/hello-jni,进入到E:\android-ndk-r5\samples\hello-jni文件夹。

3、 输入$NDK/ndk-build,运行成功后,它会自己主动生成一个libs文件夹,把编译生成的.so文件放在里面。

($NDK是调用我们之前配置好的环境变量,ndk-build是调用ndk的编译程序)

4、  此时去hello-jni的libs文件夹下看有没有生成的.so文件,假设有。你的ndk就执行正常啦!

6、在eclipse中集成c/c++开发环境

1、 装Eclipse的C/C++环境插件:CDT,这里选择在线安装。

首先登录http://www.eclipse.org/cdt/downloads.php,找到相应你Eclipse版本号的CDT插件的在线安装地址。

2、  然后点Help菜单,找到Install New Software菜单

3、  点击Addbutton。把取的地址填进去。出来插件列表后,选Select All。然后选择下一步就可以完毕安装

4、  安装完毕后,在eclispe中右击新建一个项目。假设出现了c/c++项目,则表明你的CDT插件成功安装啦。

7、配置C/C++的编译器

1、  打开eclipse,导入ndk自带的hello-jni样例,右键单击项目名称,点击Properties,弹出配置界面,之后再点击Builders,弹出项目的编译工具列表。之后点击New,新加入一个编译器。点击后出现加入界面。选择Program,点  击OK

2、出现了加入界面。首先给编译配置起个名字。如:C_Builder

设置Location为<你cygwin安装路径>\bin\bash.exe程序,比如:E:\cygwin\bin\bash.exe。设置Working Directory为<你cygwin安装路径>\bin文件夹,比如:E:\cygwin\bin

设置Arguments为

--login -c "cd /cygdrive/I/JavaWorkSpace/Blog/NDK_02 && $NDK/ndk-build"

上面的配置中 /cygdrive/I/JavaWorkSpace/Blog/NDK_02是你当前要编译的程序的文件夹,$NDK是之前配置  的ndk的环境变量,这两个依据你详细的安装文件夹进行配置,其它的不用变,Arguments这串參数实际是  给bash.exe命令行程序传參数。进入要编译的程序文件夹,然后执行ndk-build编译程序

3、接着切换到Refresh选项卡,给Refresh resources upon completion打上钩

4、然后切换到Build Options选项卡,勾选上最后三项

5、之后点击Specify Resourcesbutton,选择资源文件夹。勾选你的项目文件夹就可以

6、  最后点击Finish,点击OK一路把刚才的配置都保存下来,注意:假设你配置的编译器在其他编译器下边。记得一定要点Upbutton,把它排到第一位。否则C代码的编译晚于Java代码的编译。会造成你的C代码要编译两次才干看到最新的改动

7、  这一路下来肯定非常累了吧,如今再次恭喜你。编译配置也配置完毕啦,如今来測试一下能否够自己主动编译呢,打开项目jni文件夹里的hello-jni.c文件把提示Hello from JNI!改成其它的文字:如:Hello。My name is alex.,然后再模拟器中执行你的程序。假设模拟器中显示了你最新改动的文字。那么Congratulations!

你已经所有配置成功啦!

  文章參考 http://yueguc.iteye.com/blog/946724

cocos2d-x之android编译环境搭建(第二篇)[版本号:cocos2d-x-3.1.1]的更多相关文章

  1. windows下cocos2dx3.0开发环境及Android编译环境搭建

    cocos2dx更新到了3.x版本号,自己一直没有换,如今开发组要求统一换版本号,我就把搭建好开发环境的过程记录下来. 一.Windowns下开发环境搭建 1.  所需工具         1)coc ...

  2. Android编译环境搭建(0818-0819)

    1 在虚拟机VMware上安装64位Ubuntu14.04LTS 首先需要安装虚拟机并激活.然后新建虚拟机,选择使用下载好的Ubuntu镜像.注意需要将光驱改为自己下载的,而不是autoinst.is ...

  3. ubunut 12.04 (64bit) android编译环境搭建

    sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl libgl1-mesa-dev zlib1g ...

  4. jvm编译环境搭建 Debina篇

    这里参考了 <Java虚拟机精讲> <深入理解Java虚拟机 JVM高级特性与最佳实践> http://www.cnblogs.com/zxfdream/p/5411511.h ...

  5. Hadoop环境搭建|第二篇:hadoop环境搭建

    硬件配置:1台NameNode节点.2台DataNode节点 一.Linux环境配置 这里我只配置NameNode节点,DataNode节点的操作相同. 1.1.修改主机名 命令:vi /etc/sy ...

  6. cocos2d-x(vs2012)环境搭建(第一篇)[版本号:cocos2d-x-3.1.1]

    1.下载资源 下载cocos2d-x包V3.1.1,下载戳这里: http://www.cocos2d-x.org/download vs2012下载戳这里: http://www.xiazaiba. ...

  7. C语言编程入门之--第二章编译环境搭建

    第二章 编译环境搭建 导读:C语言程序如何工作,首先需要编译链接成可执行文件,然后就可以运行在不同的环境中,这个“环境”的意思就是比如说,电脑,手机,路由器,蓝牙音箱等等智能设备中,其中编译器启到了关 ...

  8. Docker容器搭建android编译环境

    Docker容器搭建android编译环境 目录 1 部署容器 1.1 手动部署 1.1.1 配置docker 1.1.2 启动容器 1.1.3 配置环境 1.2 Dockerfile 2 镜像管理 ...

  9. ubuntu12.04下安卓编译环境搭建总结

    前言:      因为工作需要,经常要编译安卓下的动态库,公司有已经搭建好环境的服务器,但是第一自己想自己搭建一下了解一个整个过程,另外,公司的服务器也经常出现问 题,导致编译不了,所以就想自己搭建环 ...

随机推荐

  1. Android开发: 关于性能需要考虑的

    刚做Android开发时,只管完成任务,将需求完成,以能完成一款界面酷炫的app为自豪.然而,随着代码量的增加,越来越意识到,一款成功的移动端产品,光有酷炫的外衣还不够,还需要在各方面都优秀. 试想, ...

  2. sql server truncate table 删除表数据限制条件

    truncate 注释 注释TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行.但 TRUNCATE TABLE 比 DELETE 速度快 ...

  3. 3星|《未来公司》:Uber简史

    未来公司(卡兰尼克和他的Uber帝国)(精) 从Uber创始人卡兰尼克的角度讲的Uber简史,截止到2017年.书中有不少Uber的负面新闻,比国内的同类书要好. 基本是流水账.想了解这家公司的历史, ...

  4. axios方法get及post代码示例

    show: function(){ //get方式 //赋值给变量self var self = this; var url = "hotcity.json"; axios.get ...

  5. Linux System

    Linux System linux 是一个功能强大的操作系统,同时它是一个自由软件,是免费的.源代码开放的,编制它的目的是建立不受任何商品化软件版权制约的.全世界都能自由使用的UNIX兼容产品.各种 ...

  6. NAT、NAPT(PAT)的基本概念和工作原理及区别

    转自:http://blog.sina.com.cn/s/blog_5d302bd20100gprv.html 近年来,随着 Internet 的迅猛发展,连入 Internet 的主机数量成倍增长. ...

  7. IP地址、MAC地址、ARP地址解析协议

    互联网中一台主机要和另一台主机实现通信首先需要知道彼此在互联网中的位置,主机在互联网中的位置是通过ip地址标记的,当找到ip地址后,再通过端口号标识运行在主机中的进程从而实现通信. IP地址: IP地 ...

  8. 「 CODE[VS] P2853 」 方格游戏

    题目大意 给定一张 $n\times n$ 的网格.每个格子上都有一个系数 $a$,先下 $A$ 和 $B$ 两人选择两条 $(1,1)\rightarrow (n,n)$ 路径.要求着两条路径不能相 ...

  9. MySQL数据库开启、关闭、查看函数功能的方法

    应用 MySQL 时,会遇到不能创建函数的情况.出现如下错误信息: ERROR 1418 : This function has none of DETERMINISTIC, NO SQL, or R ...

  10. Python面向对象,析构继承多态

    析构: def __del__(self): print("del..run...") r1 = Role("xx") del r1 结果打印del..run. ...