首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在更新ndk修订版11之后出现错误,未定义对std::__ndk1的引用

在更新ndk修订版11之后出现错误,未定义对std::__ndk1的引用
EN

Stack Overflow用户
提问于 2016-03-21 17:37:25
回答 2查看 4.2K关注 0票数 7

未定义对'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中,我发现‘将libc++的内联命名空间更改为std::__ndk1,以防止平台libc++出现ODR问题’,但我无法理解。

我怎么才能修复它?

谢谢你帮我。

EN

回答 2

Stack Overflow用户

发布于 2016-03-24 16:09:39

我认为我的方法或多或少有点棘手,但它是有效的。我进入/ndk-root-path//sources/cxx-stl/llvm-libc++/libcxx/include,,有一个名为'__config‘的文件。打开它,找到所有带有'_LIBCPP_BEGIN_ namespace _STD‘的行,这是添加内联命名空间'__ndk1’的地方。所以我只是注释掉了所有的内联名称空间,比如:

代码语言:javascript
复制
   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项目,它应该可以工作。

票数 1
EN

Stack Overflow用户

发布于 2018-06-16 20:35:54

我有错误undefined reference to 'std::ndk 1::cout'

我通过将gradle文件更改为以下内容来修复它:

代码语言:javascript
复制
externalNativeBuild {
    cmake {
        cppFlags "-DANDROID_STL=c++_shared"
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36127404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档