Sun Studio 12: C++ ユーザーズガイド

16.8 dlopen を使って C プログラムから C++ ライブラリにアクセスする

C プログラムから dlopen で C++ 共有ライブラリを開く場合は、共有ライブラリが適切な C++ 実行時ライブラリ (-compat=4 の場合は libC.so.5-compat=5 の場合は libCrun.so.1) に依存していることを確認してください。

そのためには、共有ライブラリを構築するときに、-compat=4 の場合は -lC-compat=5 の場合は -lCrun を次のようにコマンド行に追加します。次に例を示します。


example% CC -G -compat=4... -lC
example% CC -G -compat=5... -lCrun

共有ライブラリが例外を使用している場合には、ライブラリが C++ 共有ライブラリに依存していないと、C プログラムが正しく動作しないことがあります。


注 –

共有ライブラリを dlopen() で開く場合は、RTLD_GLOBAL を使用しないと、例外は機能しません。