[Android NDK]添加C++11和C++14支持
网上查了一下,大概时间表是这样的:
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