用eclipse 进行ndk开发的时候,需要用到C++11标准里面的东西,编译一直不通过:
一般来说在创建android application之后通过 项目右键->android tools->add native support 创建的jni项目都会自动把需要的includes添加到项目中,但是如果要添加对C++11标准的支持的话则要在 Application.mk中添加
NDK_TOOLCHAIN_VERSION=4.9
APP_CPPFLAGS +=-frtti -std=c++11
APP_STL := stlport_static
但是这种方法一直编译不通过 ,原因都是因为找不到bits/c++config.h头文件
c++/bits/stl_algobase.h:59:28: fatal error: bits/c++config.h: No such file or directory..
原来是因为 stlport_static 不支持C++的异常处理和RTTI,所以当APP_STL:=stlport_static 的时候,编译到functexcept.h头文件中include <bits/c++config.h>报编译异常。而gnustl_static支持C++的标准特性,编译顺利通过。
所以如果要使用到C++11特性 并且确定你的ndk版本是8以上的话,在application.mk中标注
NDK_TOOLCHAIN_VERSION=4.8
APP_CPPFLAGS +=-frtti -std=c++11
APP_STL := gnustl_static