ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
リンカーとライブラリ Oracle Solaris 10 8/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 に記載されています。本書では、プラットフォームにより実装が異なる場合は、それを特記します。
本書の x86 に関連する用語については、次を参照してください。
x86 は、64 ビットおよび 32 ビットの x86 互換製品系列を指します。
x64 は特に 64 ビット x86 互換 CPU を指します。
「32 ビット x86」は、x86 ベースのシステムに関する 32 ビット特有の情報を指します。
サポートされるシステムについては、Oracle Solaris OS: Hardware Compatibility Lists を参照してください。
このマニュアルでは、Oracle Solaris リンカーおよび実行時リンカーの操作について説明しています。動的実行可能ファイルと共有オブジェクトの生成および使用方法に関しては、動的実行環境において重要であるため、特に重点を置いて説明しています。
このマニュアルは、Oracle Solaris リンカー、実行時リンカー、および関連ツールに興味を持つ、意欲的な初心者から上級ユーザーまでのプログラマを対象としています。
初心者は、リンカーと実行時リンカーの操作の原理を学ぶ
中級プログラマは、有効なカスタムライブラリの作成と使用方法を学ぶ
言語ツール開発者などの上級プログラマは、オブジェクトファイルの変換と生成方法を学ぶ
ほとんどのプログラマは、このマニュアルの最初から最後までを通読する必要はありません。
第 1 章Oracle Solaris リンカーの紹介では、Oracle Solaris OS でのリンク処理の概要を紹介します。この章は、すべてのプログラマを対象としています。
第 2 章リンカーでは、リンカーの機能について説明します。この章は、すべてのプログラマを対象としています。
第 3 章実行時リンカーでは、実行環境と、プログラム制御によるコードおよびデータの実行時の結び付きについて記載しています。この章は、すべてのプログラマを対象としています。
第 4 章共有オブジェクトでは、共有オブジェクトの定義について記載し、そのメカニズムと作成方法および使用方法について説明しています。この章は、すべてのプログラマを対象としています。
第 5 章アプリケーションバイナリインタフェースとバージョン管理では、動的オブジェクトによって提供されたインタフェースの展開の管理方法について記載しています。この章は、すべてのプログラマを対象としています。
第 6 章サポートインタフェースでは、リンカーと実行時リンカーの処理を監視し、場合によっては修正する、インタフェースについて記載しています。この章は、上級プログラマを対象としています。
第 7 章オブジェクトファイル形式は、ELF ファイル用のリファレンスです。この章は、上級プログラマを対象としています。
第 8 章スレッド固有領域 (TLS)では、スレッド固有領域について説明しています。この章は、上級プログラマを対象としています。
第 9 章mapfile では、リンカーに対するバージョン 2 の mapfile 指令について説明します。この章は、上級プログラマを対象としています。
付録 A リンカーのクイックリファレンスでは、もっとも一般に使用されるリンカーオプションの概要を記載しています。この付録は、すべてのプログラマを対象としています。
付録 B バージョン管理の手引きは、共有オブジェクトのバージョン管理のための命名規約と手引きを記載しています。この付録は、すべてのプログラマを対象としています。
付録 C 動的ストリングトークンによる依存関係の確立では、予約動的ストリングトークンを使用して、動的依存関係を定義する方法の例を記載しています。この付録は、すべてのプログラマを対象としています。
付録 D 直接結合では、直接結合に関連する実行時のシンボル検索モデルについて説明します。この付録は、上級プログラマを対象としています。
付録 E System V Release 4 (バージョン 1) Mapfileでは、リンカーに対するバージョン 1 の mapfile 指令について説明します。この章は、上級プログラマを対象としています。
付録 F リンカーとライブラリのアップデートおよび新機能では、新しい機能と、リンカー、実行時リンカー、および関連ツールへの更新内容の概要を、変更が行われたリリースを示しながら説明します。
このドキュメントを通して、すべてのコマンド行の例は、sh(1) の構文を使用しています。すべてのプログラム例は、C 言語で記述されています。
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 キーを押すことを意味します。