ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
リンカーとライブラリ Oracle Solaris 10 8/11 Information Library (日本語) |
この章では、アセンブラとリンカーで生成されるオブジェクトファイルの実行可能リンク形式 (ELF) について説明します。オブジェクトファイルには、主に次の 3 つの種類があります。
「再配置可能オブジェクト」ファイルは、コードとデータが入っているセクションを保持します。このファイルは、ほかの再配置可能オブジェクトファイルとリンクして、動的実行可能ファイル、共有オブジェクトファイル、または別の再配置可能オブジェクトを作成するのに適しています。
「動的実行可能」ファイルは、実行可能なプログラムを保持します。実行可能ファイルは、exec(2) によるプログラムのプロセスイメージの作成方法を指定します。このファイルは、一般的に実行時に共有オブジェクトファイルと結合され、プロセスイメージを作成します。
「共有オブジェクト」ファイルは、追加リンクに適したコードとデータを保持します。リンカーは、共有オブジェクトファイルをほかの再配置可能オブジェクトファイルや共有オブジェクトファイルとともに処理して、別のオブジェクトファイルを作ることができます。実行時リンカーは、共有オブジェクトファイルを動的実行可能ファイルやほかの共有オブジェクトファイルと組み合わせ、プロセスイメージを作成します。
この章の最初の節、「ファイル形式」では、オブジェクトファイルの形式、およびこの形式がプログラム作成にどのように関係しているかに焦点を当てています。次の節、「動的リンク」では、この形式がプログラムの読み込みにどのように関係しているかに焦点を当てています。
プログラム内からオブジェクトファイルを操作するには、ELF アクセスライブラリ libelf によって提供される関数を使用します。libelf の説明については、elf(3ELF) のマニュアルページを参照してください。libelf を使用するサンプルソースコードは、SUNWosdem パッケージに含まれており、/usr/demo/ELF ディレクトリの下に置かれています。