ノード:Dlopened modules, 次:, 前:Inter-library dependencies, 上:Top



dlopenモジュール

ダイナミックリンクの議論では,その用語が二つの異なる概念を述べる ときに使用されるので,混乱することがあります.

  1. 共有ライブラリに対しプログラムをコンパイルとリンクし,それは,ダイナミッ クリンカにより実行時に自動的に解決される.この処理では,ダイナミックリ ンクはアプリケーション透過です.
  2. アプリケーションの,dlopen1のような関数の呼び出しで, それは,ユーザが指定したモジュールを実行時に任意にロードします.この形 式のダイナミックリンクは,アプリケーションで明示的に制御されます.

混乱を軽減するため,このマニュアルは二番目の形式のダイナミックリンクを dlopenモジュールとして述べることにします.

dlopenモジュールの主な利点は,プログラムを拡張するために,インタプリタ 言語を使用するのではなく,コンパイルされたオブジェクトコードにアクセス する能力です.実際,dlopenは,言語を拡張する効果的な方法を提供するため, インタプリタ言語でよく使用されます.

バージョン1.5の現在は,libtoolはdlopenされるモジュールのサ ポートを提供します.しかし,パッケージがそのようなサポートを行うことを, configure.inで,マクロAC_LIBTOOL_DLOPENを使用して指示し た方が良いでしょう.このマクロが使用されない(または AC_PROG_LIBTOOL後で使用される)場合,libtoolはdlopenメ カニズムが利用不可能と仮定し,シミュレーションを試みます.

この章ではdlopenでアクセス可能なモジュールを生成するため,dlopenアプリ ケーション開発者がlibtoolを使用する方法を議論します.


脚注

  1. HP-UXでは異なり, shl_loadという名の関数が使用されます.