C コンパイル中の未定義シンボル エラー
コマンド「gcc test.cpp」を使用して C プログラムをコンパイルしようとすると、次のエラーが発生します。エラー メッセージ「リンク上の未定義シンボル ___gxx_personality_v0」。このエラーは、リンクを成功させるために必要なシンボルが欠落していることを示します。
中心的な問題は、C コードに不適切なコンパイラを使用することに起因します。 gcc は主に C プログラムをコンパイルすることを目的としていますが、C では g などの別個のコンパイラが必要です。 C コードで gcc を使用すると、例外の処理と巻き戻しに不可欠な特定のシンボル ___gxx_personality_v0 を認識して処理するために必要な機能が不足します。
この問題に対処するには、次の 2 つの推奨アプローチがあります。
g コンパイラの使用
主な解決策は、 C コードに適したコンパイラ。次のように、コマンド ラインで gcc を g に置き換えます。
g++ test.cpp
g は、リンクに必要なシンボルを含め、 C の複雑さを処理する機能を備えています。
C とのリンク標準ライブラリ (オーバーライド アプローチ)
または、続行するやむを得ない理由がある場合は、 gcc を使用すると、コマンドラインにオプション「-lstdc」を追加できます。このオプションは、欠落しているシンボルを含む C 標準ライブラリに対してリンクするように gcc に指示します:
gcc test.cpp -lstdc++
このメソッドを使用しても、C コードを gcc でコンパイルしてリンクできますが、効率が劣る可能性があります。
これらの解決策に従うことで、「リンク上の未定義シンボル ___gxx_personality_v0」エラーを排除し、コンパイルとリンクを確実に成功させることができます。 C コード。
以上がC コードを gcc でコンパイルすると、「リンク上の未定義シンボル ___gxx_personality_v0」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。