JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
リンカーとライブラリ     Oracle Solaris 11 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

パート I リンカーおよび実行時リンカーの使用

1.  Oracle Solaris リンカーの紹介

2.  リンカー

3.  実行時リンカー

4.  共有オブジェクト

命名規約

共有オブジェクト名の記録

アーカイブへの共有オブジェクトの取り込み

記録名の衝突

依存関係を持つ共有オブジェクト

依存関係の順序

フィルタとしての共有オブジェクト

標準フィルタの生成

補助フィルタの生成

フィルタ処理の組み合わせ

「フィルティー」の処理

性能に関する考慮事項

elfdump を使用したファイルの解析

基本システム

動的依存関係の遅延読み込み

位置独立のコード

SPARC: -K pic-K PIC オプション

使用されない対象物の削除

共有可能性の最大化

テキストへの読み取り専用データの移動

多重定義されたデータの短縮

自動変数の使用

バッファーの動的割り当て

ページング回数の削減

再配置

シンボルの検索

再配置が実行されるとき

再配置セクションの結合

コピー再配置

-B symbolic オプションの使用

共有オブジェクトのプロファイリング

5.  インタフェースおよびバージョン管理

6.  動的ストリングトークンによる依存関係の確立

パート II クイックリファレンス

7.  リンカーのクイックリファレンス

8.  バージョン管理の手引き

パート III 詳細情報

9.  直接結合

10.  mapfile

11.  拡張性メカニズム

パート IV ELF アプリケーションバイナリインタフェース

12.  オブジェクトファイル形式

13.  プログラムの読み込みと動的リンク

14.  スレッド固有領域 (TLS)

パート V 付録

A.  リンカーとライブラリのアップデートおよび新機能

B.  System V Release 4 (バージョン 1) Mapfile

索引

依存関係を持つ共有オブジェクト

共有オブジェクトは独自の依存関係を持つことができます。「実行時リンカーが検索するディレクトリ」では、共有オブジェクトの依存関係を検索するために実行時リンカーが使用する検索規則について説明しています。共有オブジェクトがデフォルト検索ディレクトリの中にない場合、実行時リンカーに検索場所を明示的に指示する必要があります。32 ビットオブジェクトの場合、デフォルト検索ディレクトリは /lib/usr/lib です。64 ビットオブジェクトの場合、デフォルト検索ディレクトリは /lib/64/usr/lib/64 です。デフォルト以外の検索パスが必要なことを示すには、依存関係のあるオブジェクトに実行パスを記録する方法がお勧めです。「実行パス」は、リンカーの -R オプションで記録できます。

次の例では、共有オブジェクト libfoo.so は、libbar.so に対する依存関係を持ちます。これは、実行時にディレクトリ/home/me/lib にあるものと予期されますが、ない場合はデフォルト位置にあるものと予期します。

$ cc -o libbar.so -G -K pic bar.c
$ cc -o libfoo.so -G -K pic foo.c -R/home/me/lib -L. -lbar
$ elfdump -d libfoo.so | egrep "NEEDED|RUNPATH"
       [1]  NEEDED        0x123         libbar.so.1
       [2]  RUNPATH       0x456         /home/me/lib

共有オブジェクトでは、依存関係を検索するために必要な「実行パス」すべてを指定する必要があります。動的実行可能ファイルに指定された実行パスはすべて、動的実行可能ファイルの依存関係を検索するためにだけ使用されます。これらの「実行パス」は、共有オブジェクトの依存関係を検索するために使用されることはありません。

LD_LIBRARY_PATH ファミリの環境変数の範囲は、よりグローバルです。これらの変数を使用して指定されたパス名はすべて、実行時リンカーによって、すべての共有オブジェクト依存関係を検索するために使用されます。これらの環境変数は、実行時リンカーの検索パスに影響を与える一時的なメカニズムとして便利ですが、製品版ソフトウェアではできるだけ使用しないようにしてください。詳細は、「実行時リンカーが検索するディレクトリ」を参照してください。