Heim >Backend-Entwicklung >C++ >Wie löst man Probleme bei der Konvertierung von std::__cxx11::string in std::string in C?

Wie löst man Probleme bei der Konvertierung von std::__cxx11::string in std::string in C?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-28 00:50:17737Durchsuche

How to Resolve std::__cxx11::string to std::string Conversion Issues in C  ?

std::__cxx11::string in std::string Konvertierung

In C 11 stellt die Bibliothek einen std::__cxx11 bereit: :string-Typ, der vom Standard std::string abweicht. Um Kompatibilität mit externen Bibliotheken zu erreichen, die C 11 möglicherweise nicht unterstützen, ist eine Konvertierung zwischen diesen beiden Zeichenfolgentypen erforderlich.

Laut der bereitgestellten Fehlermeldung kann der Linker keine Referenzen auflösen, die std::__cxx11 betreffen: :string. Ein möglicher Grund ist die Verwendung des falschen Makros _GLIBCXX_USE_CXX11_ABI.

Lösung:

Um dieses Problem zu beheben, müssen Benutzer möglicherweise überprüfen, ob sie GCC 5 oder höher verwenden . Wenn ja, sollten sie das Makro _GLIBCXX_USE_CXX11_ABI auf 0 definieren, bevor sie Standardbibliotheksheader einschließen. Dies kann wie folgt erfolgen:

#define _GLIBCXX_USE_CXX11_ABI 0

Durch die Definition dieses Makros verwendet der Linker die ältere ABI und stellt so die Kompatibilität mit den externen Bibliotheken sicher. Infolgedessen sollte die Konvertierung von std::__cxx11::string in std::string nahtlos erfolgen.

Das obige ist der detaillierte Inhalt vonWie löst man Probleme bei der Konvertierung von std::__cxx11::string in std::string in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn