リンク編集では、一般に、コンパイラ、アセンブラ、または ld(1) によって生成された入力ファイルを受け取ります。リンカーは、これら入力ファイル内のデータを連結および解釈して、1 つの出力ファイルを生成します。リンカーにはさまざまなオプションを使用できますが、出力ファイル (入力再配置可能オブジェクトの連結) は次のいずれかの形式になります。
静的実行可能ファイル - すべてのシンボル参照が実行可能ファイルに結合され、実行待機中のプロセスを表現する入力再配置可能オブジェクトの連結。
動的実行可能ファイル - 実行可能プロセスを生成するときに、実行時リンカーによる割り込みを必要とする入力再配置可能オブジェクトの連結。動的実行可能ファイルのシンボル参照は、実行時に結合される必要があり、また、動的実行可能ファイルには、共有オブジェクトの形式で 1 つ以上の依存関係を割り当てることができる。
共有オブジェクト - 実行時に動的実行可能ファイルに結合される機能を提供する入力再配置可能オブジェクトの連結。また、共有オブジェクトの中にも、他の共有オブジェクトに依存する依存関係がある場合もある。
これらの出力ファイルと、出力ファイルを作成する場合に使用するキーリンカーオプションを、図 1–1 に示します。
「動的実行可能ファイル」と「共有オブジェクト」を、しばしばまとめて「動的オブジェクト」と呼びます。このマニュアルでは、この動的オブジェクトに焦点を当てて説明します。