9

众所周知,glibc(据我所知,glibstd++ 也是)使用符号版本控制机制。(有关详细信息,请参阅: 如何链接到特定的 glibc 版本。)

问题是如何确定 GLIBC 和 GLIBCXX 的确切版本将由链接器为来自 libc 和 libstdc++ 的名称选择?例如,如何得到这样的东西:

time -> time@GLIBC_2_5
...
gethostbyname -> gethostbyname@GLIBC_2_3

我们为什么需要这个?在我看来,如果您想最小化所需的 glibc/libstdc++ 版本,它会很有用。

4

1 回答 1

15

您可以尝试的一件事是objdump -T在您的二进制文件上运行。

如果您正在考虑链接到旧版本的符号,请注意这些旧版本也可能依赖于旧的、不同的结构或其他定义。为避免这种情况,请使用较旧的匹配头文件和库进行编译和链接。

于 2010-08-08T22:38:00.130 回答