安装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. C.Fountains(Playrix Codescapes Cup (Codeforces Round #413, rated, Div. 1 + Div. 2)+线段树+RMQ)

    题目链接:http://codeforces.com/contest/799/problem/C 题目: 题意: 给你n种喷泉的价格和漂亮值,这n种喷泉题目指定用钻石或现金支付(分别用D和C表示),C ...

  2. 48、面向对象中super的作用?

    什么是super? super() 函数是用于调用父类(超类)的一个方法. super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序( ...

  3. 解决Chrome下表单自动填充后背景色为黄色

    Chrome浏览器在表单自动填充后会显示黄色背景,这是Chrome的私有属性导致,对于有洁癖的人来讲,是不喜欢的,我们可以手动去掉. 代码如下: input:-webkit-autofill { -w ...

  4. 常见的bug

    常见bug 一. Android系统功能测试设计的测试用例: a.对所测APP划分模块 b.详细列出每个模块的功能点(使用Xmind绘制功能图) c.使用等价类划分.边界值.场景法等对各功能点编写测试 ...

  5. discuz 积分按日重新计算,(摒弃以前24小时计算)

    修改\source\module\forum\forum_misc.php将 foreach(C::t('forum_ratelog')->fetch_all_sum_score($_G['ui ...

  6. Ubuntu之镜像iso安装系统

    ubuntu的安装 官网下载iso文件,网址:http://releases.ubuntu.com/16.04.4/, 选择:ubuntu-16.04.4-server-amd64.iso: 下载完毕 ...

  7. openjudge-NOI 2.6-2985 数字组合

    题目链接:http://noi.openjudge.cn/ch0206/2985/ 题解: 跟背包问题有点相似,暂且算背包型DP吧,虽然是一道递推题…… fj表示和为j时的结果,得: 即为j减去每一个 ...

  8. HDU 6198 2017沈阳网络赛 线形递推

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6198 题意:给出一个数k,问用k个斐波那契数相加,得不到的数最小是几. 解法:先暴力打表看看有没有规律 ...

  9. Webcollector应用(一)

    webcollector是一个开源的Java网络爬虫框架.最近的爬虫改用java写了,对这一周的工作进行简要总结.对于内部机制了解不深入,主要侧重在应用. 一.环境搭建 需要安装一个webcollec ...

  10. modprobe

    1.1 简介 Linux命令:modprobe .功能说明:自动处理可载入模块.语 法:modprobe [-acdlrtvV][--help][模块文件][符号名称 = 符号值].补充说明:modp ...