ホームページ > バックエンド開発 > C++ > コンパイル中に「未定義のシンボル ___gxx_personality_v0」エラーが発生するのはなぜですか?

コンパイル中に「未定義のシンボル ___gxx_personality_v0」エラーが発生するのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-15 17:48:02
オリジナル
1031 人が閲覧しました

Why am I getting an

コンパイル中の「未定義シンボル ___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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート