Heim > Backend-Entwicklung > C++ > Hauptteil

Warum erhalte ich beim Kompilieren die Fehlermeldung „Undefiniertes Symbol ___gxx_personality_v0'?

Mary-Kate Olsen
Freigeben: 2024-11-15 17:48:02
Original
947 Leute haben es durchsucht

Why am I getting an

Debugging-Fehler „Undefiniertes Symbol ___gxx_personality_v0“ während der Kompilierung

Problem:

Beim Erstellen von C Wenn Sie über die Befehlszeile Code eingeben, tritt ein undefinierter Symbolfehler auf:

$ gcc test.cpp
Undefined symbols:
  "___gxx_personality_v0", referenced from:
Nach dem Login kopieren

Trotz der Einfachheit des Codes kann er ohne Erklärung nicht kompiliert werden.

Erklärung:

Der Fehler tritt auf, weil der Code mit gcc, einem Compiler für die Sprache C, und nicht mit g, dem Compiler für C, kompiliert wird. Das Symbol ___gxx_personality_v0 ist ein spezifisches Symbol für die C-Standardbibliothek (libstdc) und ist in der C-Standardbibliothek (libc) nicht vorhanden.

Lösung:

Es gibt zwei Lösungen, um dieses Problem zu beheben:

  • Verwenden Sie g:

    Da der Code in C geschrieben ist, sollte er mit g kompiliert werden , das sowohl den C-Compiler als auch die C-Standardbibliothek enthält. Verwenden Sie stattdessen diesen Befehl:

    $ g++ test.cpp
    Nach dem Login kopieren
  • Fügen Sie die C-Standardbibliothek hinzu:

    Wenn Sie gcc verwenden müssen, können Sie C hinzufügen Standardbibliothek durch Hinzufügen des Flags -lstdc zur Befehlszeile. Dieses Flag weist den Linker an, die libstdc-Bibliothek einzuschließen, die die erforderlichen Symbole enthält. Verwenden Sie stattdessen diesen Befehl:

    $ gcc test.cpp -lstdc++
    Nach dem Login kopieren

Hinweis:

Die Verwendung von g ist die bevorzugte Methode, da sie sowohl C- als auch C-Code nahtlos verarbeitet. Indem Sie den richtigen Compiler für die von Ihnen verwendete Sprache auswählen, können Sie diese Art von Fehlern verhindern und eine erfolgreiche Kompilierung sicherstellen.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Kompilieren die Fehlermeldung „Undefiniertes Symbol ___gxx_personality_v0'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage