1. ホーム
  2. c

[解決済み] C言語のオブジェクトファイルって何?

2022-04-21 10:11:59

質問

C言語のライブラリについて読んでいるのですが、オブジェクトファイルとは何かという説明がまだ見つかっていません。他のコンパイルされたファイルとオブジェクト・ファイルの本当の違いは何ですか?

どなたか人語で説明していただけると嬉しいです。

どのように解決するのですか?

オブジェクトファイルは、コンパイル段階からの実際の出力です。 ほとんどが機械語ですが、リンカーがどのようなシンボルが含まれているか、また、動作するために必要なシンボルを確認するための情報を持っています。 (参考までに、quot;symbols" は基本的にグローバルオブジェクトや関数などの名前です)。

リンカーはこれらのオブジェクトファイルをすべて受け取り、それらを結合して1つの実行ファイルを作成します(できる限り、つまり重複や未定義のシンボルがないことを前提に)。 多くのコンパイラは、コマンドラインオプションを使って "コンパイルだけ" と指示しなければ、あなたのためにこの作業を行います (つまり、勝手にリンカを実行します)。 ( -c は、一般的な "just compile; don't link" オプションです)。