转载Android NDK(Eclipse+Cygwin+NDK)的开发 – 正正博客 – 博客园.
本篇博客在cnblogs首发:http://www.cnblogs.com/zzc1986。
开发问题:
我非常喜欢Eclipse这个IDE,因此,这是我的首选了。而目前Android的NDK开发离不开Linux环境,大家却对Windows比较熟悉,在Windows平台最好的模拟Linux环境的就是Cygwin了,好马上开始了。
Eclipse CDT安装和Cygwin的安装就不多说了,注意Cygwin一定要安装好所有的gnu工具,比如gcc,gdb等,建议出去特别专业外的全部安装,这样 就有了一个比较完整的Linux开发环境。但是,Cygwin在最近版本中却不能与Eclipse进行很好的集成,参考:http://www.2009fly.com/index/a/bianchengyuyan/C_C__/2011/0119/232.html。为了使用,请跟着我做简单的如下配置,参考中虽然也提供了方法,但是我并没有配置成功,估计是不是新版本又有所改变。好了,来做如下配置:
1、 首先,你要建立一个标准的C/C++工程,然后在工程的属性作如下配置:选中C/C++ Build->Tool Chain Editor,在右边的Current toolchain中选择Cygwin GCC。
2、 在C/C++ Build->Settings 中,你需要做一下几个方面的配置。在Cygwin C Compiler->Includes中,设置你的Cygwin的include路径,比如,我的是:
E:\cygwin\usr\include
E:\cygwin\usr\include\w32api
完成上面的配置后,你如果写代码,就可以看到提示了,而且原来可恶的警告提示符也不见了。
3、 目前你能编译了,但是link呢?很好办,在你的Cygwin C Linker->Libraries中的Library search path(-L)中配置你的library路径,我的是:
E:\cygwin\lib
在Cygwin C Linker->Libraries的Libraries(-l)中填写你需要连接的库,注意,比如libxml2.so,你只需要写xml2就够了,Linux下开发的都应该清楚的啊。
现在开发没有问题了,但是我们要进行的是Android上的开发啊,呵呵,刚才我配置的是PC上的开发,其实也没有关系啊,只要把上面的 include设置成你针对的Android平台的include就可以了。比如我的是针对的Android-8,也就是Android2.2,那么我把 include设置成:
E:\Android\android-ndk-r4\build\platforms\android-8\arch-arm\usr\include
这样就可以了,至于link的library么,那就不用设置了,因为我们只想用Eclipse来完成编码,而编译就交给ndk-build了,当 然,你要会写Android.mk文件的奥。还有一点,要提醒的是,如果你的程序需要Android ndk还没有公开的API,那么,你可以直接去Android的git库里面将其代码下载下来。放心,你不需要重新编译的,知识利用里面的头文件就好,然 后配置到Eclipse CDT的include目录用来完成代码编写,配置到Android.mk文件用来compile、link。那么link的时候so去哪里找呢,呵呵, 就在你的Android模拟器中啊,或者说就在你的真机上呢,将他们下载到你的platfoms的目录中就可以了:
E:\Android\android-ndk-r4\build\platforms\android-8\arch-arm\usr\lib
不过要注意版本奥。有些so没问题,但是有些却是有问题的奥,比如icu4c库,也就是libicucore.so。那么,怎样用ndk-build呢,呵呵,你现在有Cygwin了,ndk-build就可以直接使用了,请参考Android ndk的官方文档。
奥,我的Eclipse是Helios Service Release 1,CDT版本是7.0.1.201009141542。下次也会在这个版本上讲解“Android NDK(Eclipse+Cygwin+NDK)的调试”。欢迎大家加入Andorid高级开发群:72565180来进行讨论奥,里面有很多的高手和资料等着你呢。
====================================================================
版权所有,欢迎转载,请在转载前注明原文出处:正正博客
CNBlogs URL:http://www.cnblogs.com/zzc1986
尊重别人的劳动成果也就是尊重自己!
推荐:Android交流群: 72565180
====================================================================