C++ ユーザーズガイド

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

C プログラムから dlopen で C++ 共有ライブラリにアクセスする場合は、共有ライブラリが適切な C++ 実行時ライブラリ (-compat=4 の場合は libC.so.5-compat=5 の場合は libCrun.so.1) に依存していなければなりません。

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


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

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


注 -

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