ノード:Finding the dlname, 次:, 前:Dlpreopening, 上:Dlopened modules



dlopenで正しい名前の検索

-moduleを用いてライブラリがリンクされた後,dlopen可能になります. 残念ながら ライブラリ名が変更されるため,パッケージでdlopenの正しいファ イルを決定する必要があります.

最も率直で柔軟な実装は,インストールされた.laファイルを探し,以 下の行を検索することで実行時に決定することです.

     # The name that we can dlopen.
     dlname='dlname'
     

dlnameが空の場合,ライブラリはdlopenされません.それ以外では,そ れでライブラリのdlnameを与えます.そのため,ライブラリが /usr/local/lib/libhello.laにインストールされていて, dlnamelibhello.so.3の場合, /usr/local/lib/libhello.so.3がdlopenされます.

プログラムがこのアプローチを行っている場合,ライブラリが最終的にインス トールされるディレクトリと同じように, LD_LIBRARY_PATH1環境変数でリストアップされているディレクトリで 検索します.この変数(または同等物)を検索することで,インストール前でも, プログラムがlibtoolを使用してリンクし提供されているdlopenモジュールを 見つけることを保証します.


脚注

  1. AIXでのLIBPATHとHP-UXでの SHLIB_PATHです.