将 c++11 与 ndk 一起使用

using c++11 with ndk

我正在尝试在 https://github.com/tzutalin/dlib-android 中使用 dlib 的一些 dnn 功能,但我总是收到类似

的错误
error: no member named 'to_string' in
      namespace 'std'

还有更多语法错误

我的application.mk文件是这样的

NDK_TOOLCHAIN_VERSION := clang
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
APP_CPPFLAGS := -std=c++11 -frtti -fexceptions
APP_PLATFORM := android-8
APP_STL := gnustl_static
#APP_CFLAGS+=-DDLIB_NO_GUI_SUPPORT=on
#APP_CFLAGS+=-DDLIB_PNG_SUPPORT=off
APP_CFLAGS+=-DDLIB_JPEG_SUPPORT=on
APP_CFLAGS+=-DDLIB_JPEG_STATIC=on

根据我的说法,c++11 应该可以工作..我不明白问题出在哪里

这是https://github.com/android-ndk/ndk/issues/82

解决此问题的方法是从 gnustl 切换到 libc++,但请注意 libc++ 还不如 gnustl 稳定(正在尽快修复此问题,应该在 r15 稳定时准备就绪)。

编辑:从 NDK r16 开始,推荐使用 libc++。切换到使用 libc++(参见 our docs)以获得完整的 C++11(及更高版本)支持。