コンパイル中の「未定義シンボル ___gxx_personality_v0」エラーのデバッグ
問題:
C のビルド中コマンドラインを使用してコードを作成すると、未定義のシンボルが発生しますエラー:
$ gcc test.cpp Undefined symbols: "___gxx_personality_v0", referenced from:
コードは単純であるにもかかわらず、説明がなければコンパイルに失敗します。
説明:
エラーが発生する理由は次のとおりです。コードは、 C のコンパイラである g ではなく、C 言語のコンパイラである gcc を使用してコンパイルされています。シンボル ___gxx_personality_v0 は、C 標準ライブラリ (libstdc ) に固有のシンボルであり、C 標準ライブラリ (libc) には存在しません。
解決策:
これを解決するには 2 つの解決策があります問題:
Use g :
コードは C で書かれているため、両方の C コンパイラを含む g を使用してコンパイルする必要があります。そしてC標準ライブラリ。代わりに次のコマンドを使用してください:
$ g++ test.cpp
C 標準ライブラリを追加します:
gcc を使用する必要がある場合は、C ライブラリを追加できます。コマンドラインに -lstdc フラグを追加して、標準ライブラリを追加します。このフラグは、必要なシンボルを含む libstdc ライブラリをインクルードするようにリンカーに指示します。代わりに次のコマンドを使用してください:
$ gcc test.cpp -lstdc++
注:
C と C コードの両方をシームレスに処理するため、 g を使用することをお勧めします。使用している言語に適したコンパイラを選択することで、この種のエラーを防止し、コンパイルを確実に成功させることができます。
以上がコンパイル中に「未定義のシンボル ___gxx_personality_v0」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。