我使用的是c ++ 11,还有一些没有为它配置的库,需要一些类型转换.特别是我需要一种方法转换std::__cxx11::string为常规std::string,但谷歌搜索我找不到一种方法来做到这一点,并放在(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'
Run Code Online (Sandbox Code Playgroud) 为了理解问题,我应该告诉您更多有关加载动态库的程序的信息。这是半条命专用服务器。它使用旧的 libstdc++,位于可执行文件旁边。\n为了避免出现问题,当使用新标准库中的功能时,我通常将我的项目静态链接到 libstdc++。
\n\n我的朋友告诉我,如果加载 2 个使用不同编译器编译的库,或者当我从服务器调用函数时(这是在旧的 libstdc\xe2\x80\x8b++ 内部实现的),libstdc++ 静态链接可能会产生问题。
\n\n这是真的吗?我该如何解决这个问题?
\n