ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
リンカーとライブラリ Oracle Solaris 11 Information Library (日本語) |
Oracle Solaris オペレーティングシステム (Oracle Solaris OS) では、アプリケーション開発者は、リンカー ld(1) を使用してアプリケーションおよびライブラリを作成し、実行時リンカー ld.so.1(1) の支援でこれらのオブジェクトを実行できます。このマニュアルは、Oracle Solaris リンカー、実行時リンカー、および関連ツールの使用方法に関する概念を、より完全に理解したいエンジニアを対象としています。
注 - この Oracle Solaris のリリースでは、SPARC および x86 系列のプロセッサアーキテクチャーを使用するシステムをサポートしています。サポートされるシステムは、Oracle Solaris OS: Hardware Compatibility Lists に記載されています。本書では、プラットフォームにより実装が異なる場合は、それを特記します。
サポートされるシステムについては、Oracle Solaris OS: Hardware Compatibility Listsを参照してください。
本書の x86 に関連する用語については、次を参照してください。
「x86」は、64 ビットおよび 32 ビットの x86 互換オブジェクト系列を指します。
「x64」は 64 ビットの x86 固有のオブジェクトに関連します。
「32 ビット x86」は 32 ビットの x86 固有のオブジェクトに関連します。
このマニュアルでは、Oracle Solaris リンカーおよび実行時リンカーの操作について説明しています。動的実行可能ファイルと共有オブジェクトの生成および使用方法に関しては、動的実行環境において重要であるため、特に重点を置いて説明しています。
このマニュアルは、Oracle Solaris リンカー、実行時リンカー、および関連ツールに興味を持つ、意欲的な初心者から上級ユーザーまでのプログラマを対象としています。
初心者は、リンカーと実行時リンカーの操作の原理を学ぶ
中級プログラマは、有効なカスタムライブラリの作成と使用方法を学ぶ
言語ツール開発者などの上級プログラマは、オブジェクトファイルの変換と生成方法を学ぶ
ほとんどのプログラマは、このマニュアルの最初から最後までを通読する必要はありません。
このドキュメントを通して、すべてのコマンド行の例は、sh(1) の構文を使用しています。すべてのプログラム例は、C 言語で記述されています。
このマニュアルは次の部分に分かれています。
パート 1 では Oracle Solaris リンカーの使用方法について記載しています。この情報は、すべてのプログラマを対象としています。
第 1 章Oracle Solaris リンカーの紹介では、Oracle Solaris OS でのリンク処理の概要を紹介します。
第 2 章リンカーでは、リンカーの機能について説明します。
第 3 章実行時リンカーでは、実行環境と、プログラム制御によるコードおよびデータの実行時の結び付きについて記載しています。
第 4 章共有オブジェクトでは、共有オブジェクトの定義について記載し、そのメカニズムと作成方法および使用方法について説明しています。
第 5 章インタフェースおよびバージョン管理では、動的オブジェクトによって提供されたインタフェースの展開の管理方法について記載しています。
第 6 章動的ストリングトークンによる依存関係の確立では、動的依存関係を定義するための予約された動的ストリングトークンを使用する方法の例を提供します。
パート 2 では、新規ユーザーがすぐに開始できるようにするためのクイックリファレンス情報を提供します。この情報は、すべてのプログラマを対象としています。
第 7 章リンカーのクイックリファレンスでは、もっとも一般的に使用されるリンカーオプションの概要を提供します。
第 8 章バージョン管理の手引きでは、共有オブジェクトのバージョン管理のための命名規則とガイドラインを提供します。
パート 3 では特殊なトピックについて扱います。この情報は、上級プログラマを対象としています。
第 9 章直接結合では、直接結合に関連する実行時シンボル検索モデルについて説明します。
第 10 章mapfile では、リンカーに対するバージョン 2 の mapfile 指令について説明します。
第 11 章拡張性メカニズムでは、リンカーと実行時リンカーの処理を監視し、場合によっては修正するインタフェースについて記載しています。
パート 4 では、Oracle Solaris ELF アプリケーションバイナリインタフェース (ABI) について記載します。この情報は、上級プログラマを対象としています。
第 12 章オブジェクトファイル形式は、ELF ファイル用のリファレンスの章です。
第 13 章プログラムの読み込みと動的リンクでは、実行時の ELF ファイルの読み込みと管理方法について説明します。
第 14 章スレッド固有領域 (TLS)では、スレッド固有領域について説明しています。
付録 A リンカーとライブラリのアップデートおよび新機能では、新しい機能と、リンカー、実行時リンカー、および関連ツールへの更新内容の概要を、変更が行われたリリースを示しながら説明します。
付録 B System V Release 4 (バージョン 1) Mapfileでは、リンカーに対するバージョン 1 の mapfile 指令について説明します。この付録は、古い構文で記述された既存の mapfiles へのサポートを必要とするプログラマを対象としています。すべての新しいアプリケーションについては、第 10 章mapfileで説明されているバージョン 2 の mapfile 構文をお勧めします。
Oracle のお客様は、My Oracle Support を通じて電子的なサポートを利用することができます。詳細は、http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info を参照してください。聴覚に障害をお持ちの場合は、http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs を参照してください。
このマニュアルでは、次のような字体や記号を特別な意味を持つものとして使用します。
表 P-1 表記上の規則
|
Oracle Solaris OS に含まれるシェルで使用する、UNIX のデフォルトのシステムプロンプトとスーパーユーザープロンプトを次に示します。コマンド例に示されるデフォルトのシステムプロンプトは、Oracle Solaris のリリースによって異なります。
C シェル
machine_name% command y|n [filename]
C シェルのスーパーユーザー
machine_name# command y|n [filename]
Bash シェル、Korn シェル、および Bourne シェル
$ command y|n [filename]
Bash シェル、Korn シェル、および Bourne シェルのスーパーユーザー
# command y|n [filename]
[ ] は省略可能な項目を示します。上記の例は、filename は省略してもよいことを示しています。
| は区切り文字 (セパレータ) です。この文字で分割されている引数のうち 1 つだけを指定します。
キーボードのキー名は英文で、頭文字を大文字で示します (例: Shift キーを押します)。ただし、キーボードによっては Enter キーが Return キーの動作をします。
ダッシュ (-) は 2 つのキーを同時に押すことを示します。たとえば、Ctrl-D は Control キーを押したまま D キーを押すことを意味します。