リンカーとライブラリ

リンク編集

リンク編集では、さまざまな入力ファイルを cc(1)as(1) または ld(1) から入手し、これらの入力ファイル内のデータを連結し、1 つの出力ファイルの形式に変換します。リンカーでは、多数のオプションが使用できますが、作成された出力ファイルは、次の 4 つの基本タイプのいずれかになります。

「再配置可能オブジェクト」

入力再配置可能オブジェクトの連結。これは、後続のリンク編集フェーズ内で使用されます。

「静的実行可能ファイル」

実行可能ファイルに結合されたすべてのシンボル参照を持ち、このようにして実行可能プロセスを示す、入力再配置可能オブジェクトの連結。

「動的実行可能ファイル」

実行時リンカーが実行可能プロセスを作成する場合に必要な、入力再配置可能オブジェクトの連結。そのシンボルリファレンスは、実行時に結合される必要があり、さらに 1 つまたは複数の共有オブジェクト形式の依存関係を持ちます。

「共有オブジェクト」

実行時に動的実行可能ファイルと結合される可能性があるサービスを提供する入力再配置可能オブジェクトの連結。また、共有オブジェクトの中にも、他の共有オブジェクトに依存する依存関係がある場合もあります。

これらの出力ファイルと、出力ファイルを作成する場合に使用するキーリンカーオプションを、図 1-1 に示します。

「動的実行可能ファイル」と「共有オブジェクト」を、通常、2 つ合わせて「動的オブジェクト」と呼びます。このマニュアルでは、この 2 つに焦点をあてて説明しています。

図 1-1 静的または動的リンク編集

Graphic