Android ndk std :: to_string支持
我正在使用android NDK r9d和工具链4.8,但我不能使用std :: to_string函数,编译器会引发此错误:
error: 'to_string' is not a member of 'std'
android ndk不支持这个function吗? 我尝试APP_CPPFLAGS := -std=c++11
没有运气。
你可以尝试LOCAL_CFLAGS := -std=c++11
,但似乎有几个string函数不适用于Android NDK 。
另一种方法是自己实现它。
#include <string> #include <sstream> template <typename T> std::string to_string(T value) { std::ostringstream os ; os << value ; return os.str() ; } int main() { std::string perfect = to_string(5) ; }
NDK r9 +可以使用llvm-libc ++ ,它可以完全支持cpp11。
在你的Application.mk中,你必须添加:
APP_STL:=c++_static
要么
APP_STL:=c++_shared
摇篮
如果你正在寻找Gradle构build系统的解决scheme。 看这个答案 。
简短的回答。
添加string
arguments "-DANDROID_STL=c++_shared"
在你的build.gradle
。 喜欢
android { ... defaultConfig { ... externalNativeBuild { cmake { ... arguments "-DANDROID_STL=c++_shared" } } } ... }
实验性的Gradle插件
如果你正在寻找一个解决scheme的实验Gradle插件,这对我工作…
用com.android.tools.build:gradle-experimental:0.9.1testing
model { ... android { ... ndk { ... stl = "c++_shared" } } }