[Android NDK]添加C++11和C++14支持

bayren0 2016-04-25

网上查了一下,大概时间表是这样的:

android ndk从2013年开始支持了C++11,从2015年开始支持C++14。

设置方法:

1、支持标准:

在 Android.mk 中加入

① c++ 11 标准:

LOCAL_CPPFLAGS += -std=c++11

② c++ 14标准:

LOCAL_CPPFLAGS += -std=c++1y

2、支持STL:

在Application.mk中加入:

APP_STL := gnustl_static

3、支持线程库:

当增加c++11或者c++14标准后,ndk就已经支持了thread class,但是由于eclipse存在bug,导致 __cplusplus 宏被定义了,但是没有赋值,从而导致eclipse 上会出现错误,解决的方法就是追加上对宏的赋值

在Android.mk中增加:

① c++ 11 标准:

LOCAL_CPPFLAGS += -D__cplusplus=201103L

② c++ 14 标准:

LOCAL_CPPFLAGS += -D__cplusplus=201300L

在代码中增加头文件:#include <thread>

4、支持异常处理

在Android.mk中增加:

LOCAL_CPPFLAGS := -fexceptions  

在代码中增加头文件:#include <exception>

5、支持运行时类型信息(检查)

在Android.mk中增加:

LOCAL_CPPFLAGS := -frtti 

在代码中增加头文件:#include <typeinfo>

参考:
ndk c++11 thread rtti exception stl

http://jingyan.baidu.com/article/b87fe19ebd51fa52183568f7.html

相关推荐

cherayliu / 0评论 2020-06-13