ここで私の質問に対する答えを見つけました。私が理解しているように、「testc」で使用できる typeinfo をライブラリ「testd」で使用できるようにする必要があります。 dlopen()
を使用する場合にこれを行うには 、さらに 2 つのことを行う必要があります:
- ライブラリをリンクするときは、リンカに
-E
を渡します オプションを使用して、未解決のシンボルだけでなく、すべてのシンボルを実行可能ファイルにエクスポートするようにします (存在しないため) dlopen()
でライブラリをロードする場合 、RTLD_GLOBAL
を追加しますtestc
によってエクスポートされたシンボルを確認するためのオプションtestd
まで利用可能
一般に、gcc は dlopen 境界を越えた RTTI をサポートしていません。私はこのめちゃくちゃなtry/catchの個人的な経験がありますが、あなたの問題はもっと同じように見えます.残念ながら、dlopen 全体で単純なものに固執する必要があると思います。