原地址:http://www.apkbus.com/android-18595-1-1.html

//=====================================================================
//TITLE:
//    图文详解如何搭建Windows的Android C++开发环境(一)
//AUTHOR:
//    norains
//DATE:
//    Thursday  14-April-2011
//Environment:
//    Cygwin 1.7.9
//    Android NDK r5
//=====================================================================

1. 下载Android NDK

正常来说,我们可以从官网下载NDK,不过似乎一直以来,http://developer.android.com/都无法打开,所以还是通过搜索引擎来随便搜索一个下载吧。为方便大伙,我这里给出一个直接下载网址:http://dl.google.com/android/ndk/android-ndk-r5b-windows.zip。不过,虽然我是从这里下载,但并不代表当各位朋友看到这篇文章时,还能够继续使用。

2. 解压NDK

将下载回来的zip文件解压。我这里的路径是:D:/ProgramFiles/Android/NDK。虽然路径是任意的,但尽可能不要包含有空格。

3. 下载Cygwin

Android是用linux核心的,注定为其编写的程序不可能使用微软的Visual Studio之流,何况Google也推荐采用linux开发C++程序。可问题在于,用Windows的人实在太多了,即使是程序员群体也是如此。那么,这是否意味着我们必须要转向linux呢?其实没必要。我们只要下载一个cygwin即可解决问题。

这个cygwin究竟是何方神圣?它其实是linux工具的合集。它可以在windows下搭建一个linux的环境,让你可以在windows下进行linux的程序开发。其官网网址为:http://www.cygwin.com/,大家可以自行去下载。只不过该软件必须要用官网的setup.exe文件进行下载,而网络上也无法找到完整的cygwin,所以直接带给我们的结果就是,没有了常用的下载软件,只能慢慢地龟速等待。

点击Setup.exe程序,会弹出一个下载方式选择的对话框。因为我习惯于备份安装文件,以方便第二台机器安装,所以选择的是第二项:"Download without installing",如图:
<ignore_js_op> 
在一系列的"下一步"之后,会到一个选择下载组件的对话框。为了避免以后会出现莫名奇妙的问题,我建议还是全部选择install,如图所示:
<ignore_js_op> 
  以install方式下载整个cygwin的话,大小大概在1.7G左右,所以注定这是一个比较漫长的过程。特别是不能采用我们平时的下载工具,并且服务器在国外,更加剧了耗时的长度。
   
   
4. 安装Cygwin

还是依然点击setup.exe这个程序,不过这次我们选择的是:"Install From Local Directory",如图:
<ignore_js_op> 
接着选择安装的目录,我这里是"D:/ProgramFiles/Cygwin",如图所示:
<ignore_js_op> 
再接下来呢,选择的就是你下载回来的Cygwin包的路径了,而我这里路径是"D:/Tools/cygwin",如图所示:
<ignore_js_op> 
可能有朋友无法确定自己的安装路径,其实很简单,本地安装包路径就是setup.ini这个文件所在的文件夹。
   
    紧接着的安装组件还是和之前一样,全部选择为install。点选下一步之后,就等着漫长的安装过程的结束吧,如下图所示:
<ignore_js_op> 
5. 设置环境变量

安装完毕之后,为了能够方便编译NDK,最好是设置相应的环境变量。打开cygwin的安装目录下的home文件夹,然后进入到相应的用户名中,如果你发现该用户名下有.bash_profile文件,那么接下来就简单多了,直接用记事本打开该文件,然后在文件末尾添加如下文字:
    #创建NDK的路径,在windows中我的路径为:D:/ProgramFiles/Android/NDK
   NDK_ROOT=/cygdrive/D/ProgramFiles/Android/NDK
   #添加到PATH环境变量中
   export NDK_ROOT
   
    保存之后,打开cygwin,在命令行输入:cd $NDK_ROOT。这里注意,不像windows下的CMD,这里一定是区分大小写的。如果不出意外,就会进入到我们NDK的安装目录了。
   
    如果相应的用户名文件夹中没有改文件,可能问题就没那么简单了。如果你在该用户名下建立一个.bash_profile ,并添加了相应的文字,然后如上面所说一切正常的话,那么恭喜你!但事实上,往往不是那么顺利。很可能你会发现,即使我们在用户名下建立了该文件,但似乎环境变量根本没有成功设置。这个很可能是用户名所在的路径设置不对,要检验路径,直接在cygwin输入pwd即可。
   
    比如,我安装完毕之后,输入pwd,画面显示:
<ignore_js_op> 
这意味着,如果我将.bash_profile放到D:/ProgramFiles/Cygwin/home/Administrator 是没有任何作用的,而应该放到D:/WorkPlace !
   
    那么,我们有没有办法更改这个目录呢?答案当然是可以,只要修改相应的环境变量即可。在"我的电脑"点击右键,然后按如下路径进行选择:属性 -> 高级 -> 环境变量。在上面或下面的框中,找到HOME这个环境变量,更改为相应的数值即可。更改之后,重启电脑,将.bash_profile拷贝到HOME变量指向的路径,启动cygwin,那么就可以生效了。这里需要注意,一定要重启电脑,否则这HOME变量之前的数值可能还会影响到cygwin。
   
    更改HOME变量数值之后,输入pwd,很明显看出,路径已经改变,NDK_ROOT变量也起作用了,如图:<ignore_js_op> 
6. 编译程序

接下来,我们就来编译一个程序试试。

首先,在cygwin命令行界面进入到D:/ProgramFiles/Android/NDK/samples/hello-jni路径。如果对命令行不熟悉的朋友,可以输入如下命令:cd /cygdrive/D/ProgramFiles/Android/NDK/samples/hello-jni 
   
    然后输入"$NDK_ROOT/ndk-build"进行编译。$NDK_ROOT是之前在.bash_profile设置的环境路径,而ndk-build是调用NDK的编译工具。如果不出问题,它会生成一个libs目录,并且编译生成的.so文件也会悉数在此,如下图所示:
<ignore_js_op> 
启动配置好的android的java开发环境,比如说Eclipse + CDT,然后创建一个Android项目,选择Create project form existring source location =D:/ProgramFiles/Android/NDK/samples/hello-jni,确认后即可开始编译并生成apk文件,然后运行该程序即可。关于如何搭建Eclipse + CDT编译环境来编译android程序,我们下一篇文章再详解。

参考文献:

《Cygwin完全下载指南(上)》
http://blog.csdn.net/Lionwoo/archive/2005/08/06/446962.aspx

《Windows平台下搭建Android原生C/C++开发环境 》
http://www.cnblogs.com/FinalKiller/archive/2009/07/11/1520900.html

《Android Beginners: NDK Setup Step by Step》
http://mindtherobot.com/blog/452/android-beginners-ndk-setup-step-by-step/

《windows系统集成cygwin与Eclipse与使用Android NDK r5》
http://student.csdn.net/space.php?uid=121497&do=blog&id=57864

图文详解如何搭建Windows的Android C++开发环境相关推荐

  1. 搭建Windows下Android应用开发环境——Eclipse/Android/ADT

    搭建Windows下Android应用开发环境--Eclipse/Android/ADT 田海立@CSDN 2011/07/18 Window下Android的应用开发环境,很早以前就在我的机器上搭建 ...

  2. x264代码剖析(一):图文详解x264在Windows平台上的搭建

    x264代码剖析(一):图文详解x264在Windows平台上的搭建 X264源码下载地址:http://ftp.videolan.org/pub/videolan/x264/ 平台:win7 PC. ...

  3. ftp linux包,图文详解Ubuntu搭建Ftp服务器的方法(包成功)

    一.今天下午由于课程的要求不得已做了Ubuntu搭建Ftp服务器的实验,但是实验指导书还是N年前的技术,网上搜了一大把,都是模模糊糊的! 在百般困难中终于试验成功,特把经验分给大家 希望大家少走弯路! ...

  4. 【图文详解】搭建 Spring Authorization oauth2-server-resource-client-gateway-eureka 完整Demo

    1.项目概述 1.1.概述 本项目是在前面章节的基础上,进行的升级改造.增加了注册中心.网关,更加贴近于实际需求. 在进行本节之前,请先搭建前面项目: [图文详解]搭建 Spring Authoriz ...

  5. 搭建windows(win7)平台hadoop开发环境

    一.环境 hadoop搭建在Vmware中,分布如下: 192.168.16.131 master 192.168.16.132 node1 192.168.16.133 node2 hadoop版本 ...

  6. 搭建Windows Embedded Compact 7开发环境

    大家期盼已久的WindowsEmbedded Compact 7是微软2010年发布的第七代嵌入式操作系统!微软可谓对它寄予很大的希望,所以连名字都改了.以下就简称WEC7吧.WEC7 的最大亮点就是 ...

  7. 搭建windows下的php开发环境

    1.PHP是什么? 在网站的服务器端,实现服务器程序(网站功能)业务逻辑的一门常见的编程语言. 做网站:web应用程序开发 web程序的架构:B\S B:browser 浏览器 S:Server   ...

  8. 在Eclipse上搭建Android C开发环境

    1.需要准备的工具和软件 JDK eclipse indigo(我下载的是indigo的C/C++开发版) ADT12.0(当然下最新的ADT了,免得有太多的麻烦.) Android SDK Andr ...

  9. Pycharm 中安装及使用 Jupyter (图文详解)

    在 Pycharm 中安装及使用 Jupyter (图文详解) 文章目录 在 Pycharm 中安装及使用 Jupyter (图文详解) 一.材料 二.安装 Jupyter 三.配置 Jupyter ...

最新文章

  1. 复习计算机网络基础 day8--传输层
  2. 网络服务-RSYNC
  3. 遇到这四种面试官,接了 Offer 你可能会后悔
  4. 使用LogKit进行日志操作
  5. IntelliJ IDEA自动部署
  6. NOIP 2018 普及组 解题报告
  7. 运维太忙?那是你还没掌握 Ansible !
  8. Django的视图层
  9. 如何自学游戏引擎的开发?
  10. (87)FPGA读文件激励(readmemb)
  11. Asset mangagement Resources(完善中)
  12. alisql mysql_AliSQL 5.6.32 vs MySQL 5.7.15抢鲜测试
  13. oracle ebs 采购入库,ORACLE EBS/ERP 采购库存模块分录
  14. 嵌入式Linux设置开机自动运行程序(基于BusyBox init)
  15. Android小练习2——制作点菜界面
  16. Transformer架构:位置编码
  17. ACL2020-最新录用论文列表分享
  18. 再读《投资中最简单的事》
  19. phrases practice_Choose any passage from unit 3 and unit 4 to practice.
  20. 一个微信公众号sdk(封装的比较全面)

热门文章

  1. linux 编写完程序吗,linux下编写C++程序
  2. riak php7,Laravel中服务提供者的register和boot分别是干什么
  3. 源码 连接mysql_MySql轻松入门系列————第一站 从源码角度轻松认识mysql整体框架图...
  4. LeetCode上读不懂题!看不懂测试用例的那些题(有生之年更新。。。)
  5. 数据库原理及应用【一】引言
  6. 【Linux】编译C语言文件(-o -lpthread)
  7. 516. 最长回文子序列
  8. 入职阿里啦!docker-e命令参数
  9. 决策树——ID3和C4.5
  10. spring分布式事务学习笔记(2)