首先下载eclipse和cdt,我的版本号依次是:Version: Indigo Service Release 2和Version: 1.0.0.201202111925,再下载windows的ndk,我使用的是android-ndk-r9d
什么cygwin这等东西,太恶心了,下载慢,大的要命!复杂,今天给一个最爽的编译教程。
前面的cdt插件怎么这里pass,网上教程很多的。直接配置。。。
从Android NDK r5开始支持了STL Port,在这个版本开始就可以使用部分STL库的功能了,比如说vector、string摆脱c下面容易出现的数组未初始化、越界,增强应用的健壮性。
很多网友包含了include 这样头,但仍然无法编译,这里你首先要检查当前文件是否为.cpp后缀,同时为了使用标准库必须加入 APP_STL := stlport_static 在Application.mk文件中。相关对应还有 system - 使用默认最小的C++运行库,这样生成的应用体积小,内存占用小,但部分功能将无法支持 stlport_static - 使用STLport作为静态库,这项是Android开发网极力推荐的 stlport_shared - STLport 作为动态库,这个可能产生兼容性和部分低版本的Android固件,目前不推荐使用。 gnustl_static - 使用 GNU libstdc++ 作为静态库 默认情况下STLPORT是不支持C++异常处理和RTTI,所以不要出现 -fexceptions 或 -frtti ,如果真的需要可以使用gnustl_static来支持标准C++的特性,但生成的文件体积会偏大,运行效率会低一些。
支持C++异常处理,在Application.mk中加入 LOCAL_CPPFLAGS += -fexceptions这句,同理支持RTTI,则加入LOCAL_CPPFLAGS += -frtti,这里Android123再次提醒大家,第二条说的使用gnustl静态库,而不是stlport。
强制重新编译 STLPort ,在Application.mk中加入 STLPORT_FORCE_REBUILD := true 可以强制重新编译STLPort源码,由于一些原因可能自己需要修改下STLPort库,一般普通的开发者无需使用此项。
Android目前最新的NDK版本为r6,相关的学习可以查看NDK中的Samples整体和在PC上开发没有太大的不同。
启动eclipse,然后点Windows-Prefrences-C/C++-Build-Envionment,添加以下路径
Android API目录:android-ndk-r9d\platforms\android-14\arch-arm\usr\include
Linux拓展目录:android-ndk-r9d\toolchains\arm-linux-androideabi-4.8\prebuilt\windows\lib\gcc\arm-linux-androideabi\4.8\include
CPP标准目录:android-ndk-r9d\sources\cxx-stl\stlport\stlport
然后在需要添加这些目录的工程右键-属性-C/C++ GENERAL-PATH AND SYMBOLS把以上变量都添加,你的CPP代码就能高亮显示不报错了。还能看.h文件
Application.mk
APP_ABI = armeabi armeabi-v7a
#APP_ABI = armeabi
#APP_ABI = armeabi-v7a
#APP_OPTIM = debug
APP_OPTIM = release
APP_PLATFORM = android-8
APP_STL := gnustl_static
APP_GNUSTL_FORCE_CPP_FEATURES := exceptions rtti
APP_CPPFLAGS += -frtti -fexceptions
本文链接:https://it72.com/483.htm