dlopen() を呼び出す前に、互換性のあるバイナリをロードしていることを確認したいと思います。ライブラリをロードする前に、cxxabi レベルを確認したいと考えています。
質問する
624 次
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 に答える