ホームページ  >  記事  >  バックエンド開発  >  C コードをビルドするときに「未定義のシンボル ___gxx_personality_v0」エラーが発生するのはなぜですか?

C コードをビルドするときに「未定義のシンボル ___gxx_personality_v0」エラーが発生するのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-24 02:30:10194ブラウズ

Why Am I Getting the

「未定義のシンボル ___gxx_personality_v0」とのリンク エラー

gcc コンパイラで C コードをビルドすると、「未定義のシンボル」というエラーが発生する場合があります。 ___gxx_personality_v0。」これは通常、コードの言語に対して不適切なコンパイラを使用していることを示しています。

gcc のデフォルトの動作は、C コードをコンパイルすることです。 C コードの場合は、代わりに g コンパイラを使用する必要があります。ビルド コマンドで gcc を g に置き換えるだけです。

g++ test.cpp

g に切り替えてもまだエラーが発生する場合は、ビルド コマンドに -lstdc フラグを追加してみてください。このフラグは、C コードに必要なシンボルを提供する標準 C ライブラリ (STL) をリンクします。

gcc test.cpp -lstdc++

g を使用する場合、デフォルトで STL が自動的にリンクされるため、 -lstdc の使用は通常は必要ありません。ただし、場合によっては、システムの構成に適切なライブラリがない場合にこれが必要になることがあります。

解決策で述べたように、両方の方法 ( g または gcc を -lstdc で使用) は、検証されたとおり、同じ実行可能ファイルを生成します。 MD5 ハッシュを比較することによって。ただし、ビルド プロセスが簡素化されるため、C コードでは g を使用することをお勧めします。

以上がC コードをビルドするときに「未定義のシンボル ___gxx_personality_v0」エラーが発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。