次: Dlpreopening, 上: Dlopened modules
オペレーティングシステムには,プログラムシンボルをdlsym
(または
その等価)関数を用いてダイナミックに解決するために,特別に宣言する必要
があるものもあります.
libtoolは,`-export-dynamic'と`-module'リンクフラグを提供し (see Link mode),それはこの宣言を行います.他のモジュールやdlopen されているlibtoolライブラリをdlopenするアプリケーションプログラムをリ ンクする場合,これらのフラグを使用する必要があります.
例えば,後でアプリケーションにdlopenされる共有ライブラリ libhelloをビルドしたい場合,他のリンクオプションに `-module'を加えます.
burger$ libtool --mode=link gcc -module -o libhello.la foo.lo \ hello.lo -rpath /usr/local/lib -lm burger$
実行形式からのシンボルが,dlopenしたいライブラリの未解決の参照 を満足させる必要がある場合,フラグ`-export-dynamic'を使用する必要 があります.dlopenを呼び出す実行形式をリンクするとき, `-export-dynamic' を使用してください.
burger$ libtool --mode=link gcc -export-dynamic -o hell-dlopener main.o burger$