ホームページ >バックエンド開発 >C++ >GCC で「info.c」をコンパイルするときに「-lstdc」フラグが必要なのはなぜですか?

GCC で「info.c」をコンパイルするときに「-lstdc」フラグが必要なのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-29 19:25:21517ブラウズ

Why Does Compiling `info.c` with GCC Require the `-lstdc  ` Flag?

GCC を使用した C プログラムのコンパイル

GCC は C コードをコンパイルできますが、「info.c」をコンパイルしようとするとコンパイラ エラーが発生しました「リンカーエラーが原因です。これらのエラーは、標準 C ライブラリへのリンクがないことが原因で発生します。

この問題を解決するには、コンパイル コマンドに -lstdc フラグを追加します。

gcc info.C -lstdc++

あるいは、より簡単な解決策は次のとおりです。 g を利用するには、次の処理を行います。

  • 次のように、ファイル拡張子に基づいて適切なバックエンド コンパイラを選択します。 GCC.
  • GCC による .c ファイルの C としてのコンパイルとは対照的に、すべての C ソース ファイルを C としてコンパイルします。
  • デフォルトでは、入力言語に関係なく、リンク ステップに libstdc が含まれます。

Rup によるコメントからの次の抜粋は、違い:

"GCC は、ファイル拡張子に基づいて正しいバックエンド コンパイラを選択します。ただし、デフォルトでは、標準の C および GCC ヘルパー ライブラリに対してのみバイナリをリンクします。対照的に、g はリンク ステップに libstdc を含みます。デフォルトでは、入力言語に関係なく。"

以上がGCC で「info.c」をコンパイルするときに「-lstdc」フラグが必要なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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