もう一つリンクの重要な役割は,参照しているアドレスの確定である。コンパイルした結果は,実行モジュールのどの位置に配置されるか決まっていない。逆に言えば場所を変更できる,つまり再配置可能な状態にある。これをリロケータブル・オブジェクトと呼ぶ注3)。UNIXでは「.o」,Windowsでは「.obj」という拡張子で表現されることが多い。 リロケータブル・オブジェクトは,複数の実行モジュールで使われることがある。実行モジュールのどの位置を占めるかは,プログラムによって違う。しかし実行モジュールとして完成させるには,位置が決まっていなければならない。プログラムの中の位置を確定させることが,リンクのもう一つの作業である(図5[拡大表示])。リロケータブル・オブジェクトの状態では,サブルーチンやデータなどの位置を名前で参照できるようになっている。実行モジュールでは,基本的に名前ではなくアドレスで参照す