std :: string操作(即stol,stoi)找不到NDK8d

我尝试使用ndk r8d和c ++ 11支持来设置我的第一个android项目。 一些c + 11机制工作正常(即lambdaexpression式),但是当我尝试使用新的string操作之一,编译失败(错误:'stol'不是'标准'的成员)。 这是我的项目设置:

Application.mk

APP_MODULES := MyLib APP_CPPFLAGS := -std=gnu++0x APP_CPPFLAGS += -frtti APP_CPPFLAGS += -fexceptions APP_CPPFLAGS += -DDEBUG APP_ABI := armeabi-v7a APP_PLATFORM:=android-14 APP_STL := gnustl_static APP_GNUSTL_CPP_FEATURES := rtti exceptions NDK_TOOLCHAIN_VERSION=4.7 

这些function实际上不起作用吗?

Solutions Collecting From Web of "std :: string操作(即stol,stoi)找不到NDK8d"

似乎在另一个线程回答。

你不能使用这个function的原因是相当深刻的,不幸的是,目前无法解决。

在GNU STL中,这些函数的实现依赖于c99(_GLIBCXX_USE_C99macros),这是Android不使用的

根本原因似乎是armeabi-v7a平台上的GNU stdlibc ++中禁用了C99function,原因是仿生libc不支持复杂的math运算(Android上的标准C库是Bionic)。

添加:

APP_STL:= c ++ _ static

到Application.mk为我解决了这个问题(使用gcc 4.8.4)。

解决scheme通过Daniel Tavares,从这个Google网上论坛发布 。