安装cygwin:

由于NDK编译代码时必须要用到make和gcc,所以你必须先搭建一个linux环境, cygwin是一个在windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,非常有用。通过它,你就可以在不安装linux的情况下使用NDK来编译C、C++代码了。下面我们一步一步的安装cygwin吧。

首先要下载cygwin的安装程序setup.exe,下载地址为:

http://www.cygwin.com

下载完成后双击运行setup.exe,可以看到向导界面如下:

点击下一步,此时让你选择安装方式:

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

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

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

选择第一项,点击下一步:
 

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

上一步是选择安装cygwin的目录,这个是选择你下载的安装包所在的目录,默认是你运行setup.exe的目录(就是你下载的可执行文件setup.exe所在的目录),我放在了F:\download目录下,然后点击下一步,此时你共有三种连接方式选择:

1)Direct Connection:直接连接。
2)Use IE5 Settings:使用IE的连接参数设置进行连接。
3)Use HTTP/FTP Proxy:使用HTTP或FTP代理服务器进行连接(需要输入服务器地址、端口号)。
用户可以  根据自己的网络连接的实情情况进行选择,一般正常情况下,均选择第一种,也就是直接连接方式。然后再点击“下一步”,这是选择要下载的站点,我用的是http://ftp.ntu.edu.tw,(也可以自己添加站点,在User URL中输入你选择的站点,然后点击Add添加,在列表中选中添加的站点)然后点击下一步:
 此时会出现一个要下载安装的组件包列表:
点击下一步,进入安装过程:
安装完成后点击完成结束安装。

下面测试一下cygwin是不是已经安装好了:

运行cygwin,在弹出的命令行窗口输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本和运行状态,如果status是ok的话,则cygwin运行正常。然后依次输入gcc –version,g++ --version,make –version,gdb –version进行测试,如果都打印出版本信息和一些描述信息,非常高兴的告诉你,你的cygwin安装完成了!

下载Android NDK:

下载站点:

http://dl.google.com/android/ndk/android-ndk-r4-windows.zip

http://androidappdocs.appspot.com/sdk/ndk/index.html

http://developer.android.com/sdk/ndk/overview.html

如果上面的站点下载不了,也可以到网上找一些下载站点,下载r4版本的android_ndk,下载后直接解压即可。可以考虑和android SDK放在相同的目录下,对以后的开发可能会带来一些便利。

配置NDK环境变量

首先找到cygwin的安装目录,找到一个home/<你的用户名>/.bash_profile文件,我的是C:/cygwin/home/Administrator/.bash_profile,(如果找不到,那就到网上去找解决办法把,这种情况确实可能发生)打开bash_profile文件,添加如下内容(根据你的ndk的安装目录,我的是D盘android-ndk-r4):

ANDROID_NDK_ROOT=/cygdrive/d/android-ndk-r4

export ANDROID_NDK_ROOT

ANDROID_NDK_ROOT这个名字是随便取的,为了方面以后使用方便,选个简短的名字,然后保存。打开cygwin,输入cd $ANDROID_NDK_ROOT,如果输出上面配置的/cygdrive/d/android-ndk-r4信息,则表明环境变量设置成功了。

安装eclipse组件:

Android SDK 和 ADT就不介绍了,下面介绍一个新的组件——CDT。CDT是eclipse开发c++的组件包,这里声明一下,使用NDK开发android是不需要CDT的。如果你安装了CDT,会在以后review别人的c++ code时带来一些方便。可以到CSDN上下载CDT的压缩包,加压后把对应的目录下的文件拷贝到eclipse的对应目录下就可以了。

部署并运行第一个hello-jni例子

用NDK来编译程序:

现在我们用安装好的NDK来编译一个简单的程序吧,我们选择ndk自带的例子hello-jni,我的位于D:/android-ndk-r4/samples/hello-jni(根据你具体的安装位置而定),运行cygwin,输入命令cd /cygdrive/d/android-ndk-r4/samples/hello-jni,进入到D:/android-ndk-r4/samples/hello-jni目录。输入$ANDROID_NDK_ROOT/ndk-build,执行成功后,它会自动生成一个libs目录,把编译生成的.so文件放在里面。($ANDROID_NDK_ROOT是调用我们之前配置好的环境变量,ndk-build是调用ndk的编译程序),此时去hello-jni的libs目录下看有没有生成的.so文件,如果有,你的ndk就运行正常啦!

在eclipse中配置参数编译源码生成.so文件

1)导入hello-jni工程

2)这时你的工程可能会报错,没关系,工程右键选择Build path->config Build path,如下图:

然后选择builders->new,如下图:

选择program,配置如下图:

出现了添加界面,首先给编译配置起个名字,如:C_Builder或者是默认的New_Builder,如上图,

设置Location为<你cygwin安装路径>/bin/bash.exe程序,例如:C:/cygwin/bin/bash.exe;

设置Working Directory为<你cygwin安装路径>/bin目录,例如:C:/cygwin/bin

设置Arguments为:

--login -c "cd /cygdrive/d/android-ndk-r4/samples/hello-jni && $ANDROID_NDK_ROOT/ndk-build"

上面的配置中/cygdrive/e/android-ndk-r5/samples/hello-jni是你当前要编译的程序的目录,$ANDROID_NDK_ROOT是之前配置的ndk的环境变量,这两个根据你具体的安装目录进行配置,其他的不用变,Arguments这串参数实际是给bash.exe命令行程序传参数,进入要编译的程序目录,然后运行ndk-build编译程序。

接着配置refresh选项:

勾选Refresh resources upon completion

再配置Build Options选项,如下图:

勾选上最后三项,之后点击Specify Resources按钮,选择资源目录,勾选你的项目目录即可:

最后点击Finish,点击OK一路把刚才的配置都保存下来,注意:如果你配置的编译器在其它编译器下边,记得一定要点Up按钮,把它排到第一位,否则C代码的编译晚于Java代码的编译,会造成你的C代码要编译两次才能看到最新的修改,如下图,一定要保证New_Builder在第一位:

现在来测试一下是否可以自动编译呢,打开项目jni目录里的hello-jni.c文件把提示Hello from JNI!改成其他的文字:如:"Hello,My name is lusifer.",然后再模拟器中运行你的程序,如果模拟器中显示了你最新修改的文字,那么你已经全部配置成功啦!

转自:http://ygc87.blog.163.com/blog/static/2396065201221063030169/

windows下eclipse搭建android_ndk开发环境的更多相关文章

  1. Windows下快速搭建安卓开发环境android-studio

    Windows下快速搭建安卓开发环境android-studio 发布时间:2018-01-18 来源:网络 上传者:用户 关键字: 安卓 搭建 Android Windows 快速 环境 Studi ...

  2. Windows下Eclipse+Scala+Spark开发环境搭建

    1.安装JDK及配置java环境变量 本文使用版本为jdk1.7.0_79,过程略 2.安装scala 本文使用版本为2.11.8,过程略 3.安装spark 本文使用版本为spark-2.0.1-b ...

  3. Windows下Qt5搭建Android开发环境笔记

    Windows很大的特点是配置使用几乎都可以图形化进行,和Linux比起来在很多时候配置环境也要方便很多.所以,搭建Qt for Andorid也是十分简单的.需要以下工具: 1.最方便的Qt官方包, ...

  4. Ubuntu下Eclipse搭建ARM开发环境

    第一步:安装JRE 和 Eclipse 详细步骤请参考:http://blog.csdn.net/ex_net/article/details/7251664 第二步:安装arm-linux-gcc ...

  5. windows下vscode 搭建python开发环境

    1.vscode https://code.visualstudio.com/ 下载 2.python下载 https://www.python.org/downloads/windows/  exe ...

  6. mac10.9下eclipse的storm开发环境搭建

    --------------------------------------- 博文作者:迦壹 博客地址:http://idoall.org/home.php?mod=space&uid=1& ...

  7. 使用Eclipse搭建JavaWeb开发环境的几个基本问题

    Eclipse搭建JavaWeb开发环境 eclipse是一个用于java程序开发的ide软件,tomcat是一个运行javaweb应用的服务器软件,使用eclipse开发javaweb应用的时,首要 ...

  8. 基于eclipse搭建android开发环境-win7 32bit

    基于eclipse搭建android开发环境-win7 32bit 前言:在使用朋友已搭建的Android开发环境时,发现朋友的开发环境版本较低且在update SDk时失败,便决定根据网上文章提示从 ...

  9. Eclipse搭建Android开发环境并运行Android项目

    Eclipse搭建Android开发环境并运行Android项目 (详细) 安装环境: window 10 64位 安装工具: JDK.Eclipse.SDK.ADT 安装步骤: 1.JAVA JDK ...

随机推荐

  1. flex布局语法(阮一峰)

    Flex 布局教程:语法篇   作者: 阮一峰 日期: 2015年7月10日 网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖 display属性 + posi ...

  2. 机器学习-kNN-寻找最好的超参数

    一 .超参数和模型参数 超参数:在算法运行前需要决定的参数 模型参数:算法运行过程中学习的参数 - kNN算法没有模型参数- kNN算法中的k是典型的超参数 寻找好的超参数 领域知识 经验数值 实验搜 ...

  3. 大聊Python----装饰器

    什么是装饰器? 装饰器其实和函数没啥区别,都是用def去定义的,其本质就是函数,而功能就是装饰其他的函数,说白了就是为其他函数提供附加功能 装饰器有什么作用? 比如你是一个公司的员工,你所写的程序里有 ...

  4. 学习webpack

    前言 webpack前端工程中扮演的角色越来越重要,它也是前端工程化很重要的一环.本文将和大家一起按照项目流程学习使用wbepack,妈妈再也不用担心我不会使用webpack,哪里不会看哪里.这是一个 ...

  5. redhat5.5 x64 安装oracle 11g

    http://www.cnblogs.com/jamesf/p/4769086.html http://blog.csdn.net/yakson/article/details/9012129

  6. mysql中列的增删改

    增加列: ); ) after id; ) first; 修改列名: ); #change可改名字与字段类型 mysql> alter table a change uid uid int; Q ...

  7. LCD常用接口原理【转】

    转自:http://blog.csdn.net/wocao1226/article/details/23870149 LCD常用接口原理 点击打开链接 点击打开链接 点击打开链接 点击打开链接 点击打 ...

  8. tyvj P1050 最长公共子序列

    题目链接:http://tyvj.cn/p/1050 题解: 裸题,只是为了测试LCS模板写对没有…… #include<cstdio> #include<cstring> # ...

  9. maven的初步理解

    [情景] 在进行JAVA项目开发的过程中,代码写好后,需要经过编译.打包.运行.测试.部署等过程. 在JAVA项目的开发阶段,就会根据业务的需要引入许多jar包来实现功能,但我们需求的jar包本身可能 ...

  10. MySQL三种备份

    一)备份分类 1 2 3 4 5 6 7 8 9 10 11 12 冷备:cold backup数据必须下线后备份 温备:warm backup全局施加共享锁,只能读,不能写 热备:hot backu ...