关于Android NDK R4 编译方法

R4比较特别,跟前面R1-R3的方法都不同了,完全改变了!

这里所说的,是在你已经下载好R4,和成功安装了Cygwin的条件下,要做的事情。

Cygwin安装时,选择一个镜像下载点,接着installDevel下的Gcc和make两个文件就可以了。

现在说一下,怎样编译项目的问题:

准备:在Cygwin安装目录下,找到home/username的目录下的.bash_profile文件,打开文件在最后加上“

NDK=/cygdrive/d/android-ndk-r4-windows/android-ndk-r4

exportNDK

如果找不到home/username,那么就把环境变量中的HOME删除,再重新打开Cywgin。

其中d/android-ndk-r4-windows/android-ndk-r4是NDK的根目录。

在R4下,NDK提供了3种编译方式:

1.在Cygwin下,输入cd$NDK/ndk-build

例如:D:\workspace_Android\helloJni\jni里面有Android.mk和hello-jni.c

那么命令就是cdd:workspace_Android\hellpJni\jni$NDK/ndk-build

2.在Cygwin下,$NDK/ndk-build-C

3.暂时没有明白,有知道者,请补充

以下是直接在Eclipse中编译so文件

1.为NDK工程添加Builder

选择相应的Project,点击右键选择Properties,在窗口里选择Builders,

新增一个“AndroidNDKBuilder”编译配置:

2.配置

2.1在Main页面里

Location栏选择你安装Cygewin时配置的root目录下的bash.exe所在路径,

F:\android\NDK\Cygewin\bin\bash.exe

在WorkingDirectory里配置路径为root下的bin目录的路径

F:\android\NDK\Cygewin\root\bin

最重要的是在Arguments的配置,(注意!NDKr4版本编译C,C++程序的方式做了变化)

--login-c"cd/cygdrive/f/android/workspace/HelloNDK/jni&&$NDK/ndk-build"

以上参数表示首先登陆Cygwin,然后进入HelloNDK这个工程下的jni目录(该目录下存放c或c++的文件和Android.mk)。最后执行“ndk-build”命令执行编译。

如果ndk-build命令无法识别,先确认是否成功配置了NDK的所在路径(如F:\android\NDK\android-ndk-r4)到Path环境变量里。

2.2在Refresh页,选择Specificresources并选择要刷新的文件为jni

2.3在BuildOptions页如下选择,则可以实现修改C或C++程序后立自动编译生成**.so文件

同样选择C或者C++原程序所在目录下的所有文件,作为相关的资源(jni)

选中“AllocateConsole”

选中“Launchinbackground”

选中“RunthebuilderAfteraClean”

选中“RunthebuilderDuringmanualbuilds”

选中“RunthebuilderDuringautobuilds”

选中“Specifyworkingsetofrelevantresources”

点击“SpecifyResources”按钮,选择你项目的JNI目录,并包含所有的文件。

点击“OK”按钮。

C/C++添加代码提示和自动完成

1.为Eclipse安装C/C++DevelopmentTools插件

2.新建一个C++工程,把路径指向Android工程的JNI目录

在工程属性,C/C++General,PathsandSymbols,Includes里,添加标准C/C++的.h文件(可以从Cygwin里找到,或者安装个MinGW也会有这些.h文件)。然后添加Android的.h文件,这些文件在NDK安装目录\platforms\android-x\arch-arm\usr\include中。android-x里的“x”对应工程的APILevel。例如,给Android2.2开发程序,则用android-8里的文件。

3.在工程属性,C/C++General,PathsandSymbols,Library里,添加在NDK安装目录\platforms\android-x\arch-arm\usr\lib

4.在工程属性,C/C++General,PathsandSymbols,Symbols里,定义常量

ANDROID_NDK=1

ANDROID=1

_ARM_EABI=1

备注:如果想以上的修改应用到全部配置(DebugorRelease)和全部语言(GNUCorGNUC++),可以在添加时,勾上Allconfig和Alllanguages

3.添加CDT插件 

直接在线安装就可以了

参考http://blog.csdn.net/lizhongkan/archive/2010/01/30/5271606.aspx

相关推荐