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:
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
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++
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!