C で、標準用に構成されていないライブラリと C 11 を併用する場合、型変換が必要になります。 。具体的には、std::__cxx11::string から std::string への変換が必要になることがよくあります。
問題ステートメント:
以前は、次のような構成を使用してこの変換を実行しようとしていました。 (string) が失敗し、同様のリンカー エラーが発生しましたto:
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 中国語 Web サイトの他の関連記事を参照してください。