【问题标题】:using c++11 with ndk将 c++11 与 ndk 一起使用
【发布时间】:2017-08-11 17:11:07
【问题描述】:

我正在尝试在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 应该可以工作..我不明白问题出在哪里

【问题讨论】:

  • 您可能必须使用不同的 STL 实现。参见例如stackoverflow.com/a/18124627/1524450
  • 这确实解决了这个特定问题,但现在opencv编译给出了std函数不存在的错误。不知道为什么要看看这个-> std::range_error::range_error(std::字符串 const&)

标签: c++11 android-ndk dlib


【解决方案1】:

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

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

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

【讨论】:

  • 嗯..我是 r14,它显示的 stl 值无效
  • 好的,等待 r15
  • @ArpitKhurana 现在有解决方案吗?
  • 解决方法是使用libc++。
猜你喜欢
  • 1970-01-01
  • 2012-03-16
  • 2011-09-19
  • 2013-12-22
  • 1970-01-01
  • 2012-03-25
  • 1970-01-01
  • 1970-01-01
  • 2015-11-28
相关资源
最近更新 更多