Android学习笔记——NDK中C++标准库、STL的配置;Include其他头文件

以下所有是基于Eclipse的,使用命令行的绕道。

[size=x-large][color=blue]1、STL的使用,以stlport为例[/color][/size]
[size=large]官方的说法是只需要在Application.mk文件中添加如下一行即可[/size]
APP_STL := stlport_static

[size=large]即可,可是如果真只是这么做Eclipse中会提示找不到头文件!!!
还可以用GNU的标准库,参见ndk/docs/APPLICATION-MK.html文件中对APP_STL选项的说明。

找不到头文件的原因可能是Eclipse的代码提示功能在寻找头文件时可能并不会识别Application.mk中的配置。于是乎,还需要在工程的property中设置一下头文件所在路径。 看到第二行那个万恶的system路径了吧,那个不支持stl等功能的默认C++库的路径。。。。[/size]

[img]http://dl.iteye.com/upload/attachment/0079/0882/fd475047-a50a-3a4a-ac0b-1b9f49f71a29.png[/img]

[size=large]附上自己实际使用的[color=red]Application.mk[/color]文件[/size]
APP_ABI := x86 #只生成x86架构的CPU用的lib,要生成所有平台的可以改为all  
#APP_STL := stlport_static
NDK_TOOLCHAIN_VERSION=4.7 #使用GCC4.7
APP_STL := gnustl_static #GNU STL
APP_CPPFLAGS := -fexceptions -frtti #允许异常功能,及运行时类型识别
APP_CPPFLAGS +=-std=c++11 #允许使用c++11的函数等功能
APP_CPPFLAGS +=-fpermissive #此项有效时表示宽松的编译形式,比如没有用到的代码中有错误也可以通过编译;使用GNU STL时不用此项std::string 居然编译不通过!!


[size=x-large][color=blue]2、添加其他头文件[/color][/size]
[size=large]cpp文件没试。只是添加头文件! 跟添加stl支持一样,要在工程属性添加头文件路径。不过上面那个不知道是不是只是给IDE看的。。。google作的一致性还不够啊。。。
好吧,于是乎,还要在Android.mk中添加头文件路径,如:[/size]
LOCAL_C_INCLUDES :=$(LOCAL_PATH) D:\cppHeaders\Include

[size=large]重新声明下,需要改两个地方:
[list]
[*]1、在工程属性添加头文件路径
[*]2、在Android.mk的LOCAL_C_INCLUDES项中添加头文件路径
[/list][/size]
[size=x-large][color=blue]3、编译器抽风的时候。。。[/color][/size]
[size=large]原本明明编译通过的代码又报错。。。。果断直接删除obj文件夹下的文件重新编译。
Good luck!![/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值