在 C 中,当与未针对标准配置的库一起使用 C 11 时,类型转换变得必要。具体来说,通常需要将 std::__cxx11::string 转换为 std::string。
问题陈述:
之前,尝试使用以下结构执行此转换(字符串)失败,导致类似的链接器错误至:
undefined reference to `H5::CompType::insertMember(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, H5::DataType const&) const'
解决方案:
使用 GCC 5 并尝试链接使用 _GLIBCXX_USE_CXX11_ABI 宏的不同值编译的对象文件时,可能会出现此问题。要解决此问题,请按如下方式重新定义宏:
#define _GLIBCXX_USE_CXX11_ABI 0
将此定义放在代码中任何包含标准库标头之前。
以上是如何在 C 11 中将 std::__cxx11::string 转换为 std::string?的详细内容。更多信息请关注PHP中文网其他相关文章!