ホームページ  >  記事  >  バックエンド開発  >  自立型 C プログラムに「__gxx_personality_v0」が見つからないのはなぜですか?どうすれば修正できますか?

自立型 C プログラムに「__gxx_personality_v0」が見つからないのはなぜですか?どうすれば修正できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-18 04:30:02321ブラウズ

Why is `__gxx_personality_v0` Missing in My Free-Standing C   Program, and How Can I Fix It?

自立型 C プログラムにおける __gxx_personality_v0 の役割は何ですか?

スタンドアロン C プログラムのコンパイル中の永続的なリンカー エラーこれは、 libstdc 内の __gxx_personality_v0 シンボルの定義が欠落していることに関連している可能性があります。単純な定義で問題を解決できますが、その目的を理解することが重要です。アセンブリ出力で明らかなように、

__gxx_personality_v0 はスタック巻き戻しテーブルの不可欠な部分です。 Itanium C ABI は、その役割を Personality ルーチンとして明示的に定義しています。

__gxx_personality_v0 をグローバル NULL void ポインターとして宣言することにより、エラーは効果的に解決されます。ただし、これは例外がスローされないために発生します。例外が発生した場合、その動作が明らかになります。

このような問題を回避するには、-fno-Exceptions で例外を無効にし、-fno-rtti で RTTI を無効にすることを検討してください。あるいは、 gcc の代わりに g を使用してリンクすると、 -lstdc が自動的に追加され、依存関係が解決されます。

以上が自立型 C プログラムに「__gxx_personality_v0」が見つからないのはなぜですか?どうすれば修正できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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