1
我想確定在調用dlopen()之前加載了一個兼容的二進制文件。我想在加載庫之前確定cxxabi級別。如何在使用dlopen()加載共享對象之前確定cxxabi?
我想確定在調用dlopen()之前加載了一個兼容的二進制文件。我想在加載庫之前確定cxxabi級別。如何在使用dlopen()加載共享對象之前確定cxxabi?
您可以在打開二進制文件之前掃描二進制文件使用的符號列表。我不確定如何在程序中執行此操作,但您可以閱讀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()
報告錯誤,然後讓用戶算起來出。
我會試着研究源代碼。 dlopen()是不夠的。因爲我無法控制s。 O操作。我加載的模塊,可以加載一個使用libstdC++。so.6和一個使用libstdC++。so.5的模塊。 dlopen()會加載它們都很好,但不好的事情可能會或可能不會在稍後發生。更多的時候他們會。 –