ノード:Building modules, 次:, 上:Dlopened modules



dlopenのためのモジュールのビルド

オペレーティングシステムには,プログラムシンボルを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$