1

dlopen() を呼び出す前に、互換性のあるバイナリをロードしていることを確認したいと思います。ライブラリをロードする前に、cxxabi レベルを確認したいと考えています。

4

1 に答える 1

0

バイナリを開く前に、バイナリで使用されるシンボルのリストをスキャンできます。readelfヒントのソースを読むことはできますが、プログラムでこれを行う方法がわかりません。

Linux システムで使用readelf -d -s -W /usr/lib/libstdc++.so.6 | c++filt | lessすると、次のようにマークされたシンボルがいくつか表示されます。__gnu_cxx::__verbose_terminate_handler()@@CXXABI_1.3

ただし、おそらく試しdlopen()てみて、NULL が返された場合は、使用dlerror()してエラーを報告し、ユーザーにそれを理解させます。

于 2012-12-06T01:13:09.580 に答える