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 回答