std::__cxx11::string から std::string への変換
C 11 では、ライブラリは std::__cxx11 を提供します。標準の std::string とは異なる :string 型。 C 11 をサポートしていない可能性がある外部ライブラリとの互換性を実現するには、これら 2 つの文字列型の間で変換する必要があります。
表示されたエラー メッセージによると、リンカーは std::__cxx11 に関連する参照を解決できません。 :弦。考えられる原因の 1 つは、不正な _GLIBCXX_USE_CXX11_ABI マクロの使用です。
解決策:
この問題を解決するには、ユーザーが GCC 5 以降を使用しているかどうかを確認する必要がある場合があります。 。その場合は、標準ライブラリ ヘッダーを含める前に、_GLIBCXX_USE_CXX11_ABI マクロを 0 に定義する必要があります。これは次のように実行できます。
#define _GLIBCXX_USE_CXX11_ABI 0
このマクロを定義すると、リンカーは古い ABI を使用し、外部ライブラリとの互換性を確保します。その結果、std::__cxx11::string から std::string への変換はシームレスになるはずです。
以上がC での std::__cxx11::string から std::string への変換の問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。