如何检查我正在使用的 bfd 版本?

如何检查我正在使用的 bfd 版本?

gcc我在 Linux 机器上运行该命令时遇到了一个错误,在谷歌上搜索该错误时,我发现有人说,该错误已在bfd库的较新版本中修复。进一步搜索后,我发现,这可能是构建时链接的 bfd静态库,而不是共享动态库,但我对此并不确定。gcc

如何找出gcc我所拥有的版本是bfd静态使用的还是动态的,以及是什么版本的bfd

答案1

BFD 是组成 GNU Binutils 的程序使用的库,其中包括ldgoldas等等。它们通常包含在名为二进制实用程序binutils-dev(Debian 及其同类产品)或binutils-开发(Fedora/RHEL)。您可以使用开关运行上述任何程序-V以获取其版本号。您可以使用列出它们的依赖项。要列出包括其类型readelf的依赖项:ld

readelf -d `which ld`

Dynamic section at offset 0xc900c contains 28 entries:
  Tag        Type                         Name/Value
 0x00000001 (NEEDED)                     Shared library: [libbfd-2.22-system.so]
 0x00000001 (NEEDED)                     Shared library: [libz.so.1]
 0x00000001 (NEEDED)                     Shared library: [libdl.so.2]
 0x00000001 (NEEDED)                     Shared library: [libc.so.6]

我不太熟悉 GCC 的内部工作原理,但我认为 GCC 与 BFD 相关这一点很奇怪。

相关内容