android - 更新 ndk 修订版 11 后错误未定义对 std::__ndk1 的引用

标签 android c++ android-ndk

对'webrtc::CreateSessionDescription(std::__ndk1::basic_string, std::__ndk1::allocator > const&, std::__ndk1::basic_string, std::__ndk1::allocator > const&, webrtc: :SdpParseError*)'

更新 android ndk 修订版 11 后,我遇到了一些问题。 由于上述原因,我无法构建我的项目。

在 Android Developer 中,我发现“Changed libc++'s inline namespace to std::__ndk1 to prevent ODR issues with platform libc++.”,但我无法理解。

我该如何解决?

谢谢你帮助我。

最佳答案

我认为我的方法或多或少有些棘手,但它确实有效。 我进入/ndk-root-path//sources/cxx-STL/llvm-libc++/libcxx/include,有一个名为“__config”的文件。打开它并找出所有带有“_LIBCPP_BEGIN_NAMESPACE_STD”的行,这是添加内联命名空间“__ndk1”的地方。所以我只是注释掉所有内联命名空间,例如:

   352 #define _LIBCPP_BEGIN_NAMESPACE_STD namespace std {//inline namespace _LIBCPP_NAMESPACE {
   353 #define _LIBCPP_END_NAMESPACE_STD  } //}
   354 #define _VSTD std//::_LIBCPP_NAMESPACE

   356 namespace std {
    //  inline namespace _LIBCPP_NAMESPACE {
    //  }
    }

这些代码应该有 4 或 5 段。发表评论后,您可以重建您的 ndk 项目,它应该可以工作。

关于android - 更新 ndk 修订版 11 后错误未定义对 std::__ndk1 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36127404/

相关文章:

android - 带有 Proguard 的 Ant - java.lang.NoClassDefFoundError

android - 如何在没有背景的情况下在 GraphView 中绘制图表?

c++ - 如何将模板化固定字符串传递给另一个类的构造函数的重载

c++ - 有没有办法增加数组的内存?和相关问题

c++ - Android JNI——线程同步

android - 选择安卓wifi channel

android - 拆分 apk 与 null 崩溃,不拆分工作正常

android - 如何在android导航面板中添加多个菜单项

c++ - 计算球体周围的点

Android ndk构建无法构建32位可执行文件