未定义对'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问题’,但我无法理解。
我怎么才能修复它?
谢谢你帮我。
发布于 2016-03-24 16:09:39
我认为我的方法或多或少有点棘手,但它是有效的。我进入/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项目,它应该可以工作。
发布于 2018-06-16 20:35:54
我有错误undefined reference to 'std::ndk 1::cout'
我通过将gradle文件更改为以下内容来修复它:
externalNativeBuild {
cmake {
cppFlags "-DANDROID_STL=c++_shared"
}
}https://stackoverflow.com/questions/36127404
复制相似问题