オブジェクトファイル【object file】オブジェクトモジュール/object module
オブジェクトファイルとは?

プログラミング言語で記述されたソースコードは、そのままではCPUが解釈・実行できない。そのため、コンパイラなどのソフトウェアによって機械語へ変換する処理(コンパイル)が必要となる。この変換結果をファイルに収めたものがオブジェクトファイルであり、拡張子はLinuxなどのUNIX系OSでは「.o」、Windowsでは「.obj」がよく用いられる。
オブジェクトファイルには実行命令だけでなく、関数や変数のシンボル情報、他のファイルに定義された機能を参照するための情報、リンク時にアドレスを調整するための再配置情報なども含まれる。ソースコードを複数のファイルに分割して開発する場合、各ソースファイルから個別にオブジェクトファイルが生成される。
コンパイル直後のオブジェクトファイルは、単体では実行できないことが多い。プログラム全体を構成する複数のオブジェクトファイルやライブラリを結合し、参照先のアドレスを解決する処理が別途必要となる。この処理を「リンク」(link)と呼び、「リンカ」(リンケージエディタ)が担当する。リンクの過程では、起動用コードの付加なども行われ、最終的にOSが読み込んで実行できる実行ファイル(ロードモジュール)が生成される。
オブジェクトファイルの形式はOSや開発環境によって異なり、UNIX系OSではELF形式、Windowsでは拡張されたCOFF(Common Object File Format)形式がよく使われる。なお、複数のオブジェクトファイルをまとめてアーカイブした静的ライブラリの形で配布されるケースもあり、リンク時には必要なオブジェクトファイルだけが選択的に取り込まれる。大規模な開発では、変更箇所に対応するオブジェクトファイルだけを再生成してリンクする手法により、ビルド時間を短縮できる。