ホームページ >バックエンド開発 >C++ >GCC で C をコンパイルするとリンカー エラーが発生するのはなぜですか? それらを修正するにはどうすればよいですか?

GCC で C をコンパイルするとリンカー エラーが発生するのはなぜですか? それらを修正するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-29 03:57:14954ブラウズ

Why Do I Get Linker Errors When Compiling C   with GCC, and How Can I Fix Them?

GCC を使用した C プログラムのコンパイル: リンカー エラーへの対処

GCC コンパイラーは C プログラムをコンパイルできます。ただし、提供されている例に見られるように、コンパイル中にリンカー エラーが発生すると、GCC が C をコンパイルできないという誤った想定につながる可能性があります。

リンカー エラーについて

報告されるリンカー エラーは、GCC の C コンパイル機能とは関係ありません。これらは、C プログラムに必要な関数およびライブラリへの参照が欠落していることを示します。具体的には、エラーは、GCC によってリンクされるデフォルトのライブラリである標準 C ライブラリに見つからないシンボルを参照しています。

C 標準ライブラリにリンクしてエラーを修正する

リンカーエラーを解決するには、C プログラムを C 標準ライブラリに対してリンクする必要があります。これは、コンパイル コマンドを次のように変更することで実行できます:

gcc info.C -lstdc++

-lstdc フラグは、欠落しているシンボルの定義を含む標準 C ライブラリにプログラムをリンクするように GCC に指示します。

代替: g

を使用するか、専用のC コンパイラ g 。コンパイル プロセスを簡素化します。 g は C 言語のセマンティクスを理解し、デフォルトで C 標準ライブラリに自動的にリンクします。

gcc と g の違い

提供された回答で Rup によって説明されているように、gccファイル拡張子に基づいてバックエンド コンパイラを選択しますが、デフォルトでは標準 C ライブラリのみにリンクします。一方、 g も拡張子に基づいてバックエンドを選択しますが、ファイル拡張子に関係なく、C と C ソースの両方を C としてコンパイルし、C 標準ライブラリとリンクします。

以上がGCC で C をコンパイルするとリンカー エラーが発生するのはなぜですか? それらを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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