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

オブジェクトファイルとは?

ソースコードコンパイラアセンブラで変換して得られるオブジェクトコード機械語などで記述されたバイナリコード)をファイルとして記録したもの。プログラム開発における中間成果物として生成され、最終的な実行ファイルの構成要素となる。
オブジェクトファイルのイメージ画像

プログラミング言語で記述されたソースコードは、そのままではCPUが解釈・実行できない。そのため、コンパイラなどのソフトウェアによって機械語へ変換する処理(コンパイル)が必要となる。この変換結果をファイルに収めたものがオブジェクトファイルであり、拡張子LinuxなどのUNIX系OSでは「.o」、Windowsでは「.obj」がよく用いられる。

オブジェクトファイルには実行命令だけでなく、関数や変数のシンボル情報、他のファイルに定義された機能を参照するための情報、リンク時にアドレスを調整するための再配置情報なども含まれる。ソースコードを複数のファイルに分割して開発する場合、各ソースファイルから個別にオブジェクトファイルが生成される。

コンパイル直後のオブジェクトファイルは、単体では実行できないことが多い。プログラム全体を構成する複数のオブジェクトファイルやライブラリを結合し、参照先のアドレスを解決する処理が別途必要となる。この処理を「リンク」(link)と呼び、「リンカ」(リンケージエディタ)が担当する。リンクの過程では、起動用コードの付加なども行われ、最終的にOSが読み込んで実行できる実行ファイルロードモジュール)が生成される。

オブジェクトファイルの形式はOSや開発環境によって異なり、UNIX系OSではELF形式、Windowsでは拡張されたCOFF(Common Object File Format)形式がよく使われる。なお、複数のオブジェクトファイルをまとめてアーカイブした静的ライブラリの形で配布されるケースもあり、リンク時には必要なオブジェクトファイルだけが選択的に取り込まれる。大規模な開発では、変更箇所に対応するオブジェクトファイルだけを再生成してリンクする手法により、ビルド時間を短縮できる。

他の辞典等による「オブジェクトファイル」の解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。