gcc
在Linux机器上运行命令时遇到了一个错误,在Googling上发现了人们说的错误,该错误已在bfd
库的较新版本中修复。我发现进一步搜索bfd
可能是一个静态库,该库gcc
在构建时已与之链接,而不是共享的动态库,但是我不确定。
如何找出gcc
我使用的是bfd
静态版本还是动态版本,以及哪个版本bfd
?
BFD是由构成GNU的Binutils的,包括程序使用的库ld
,gold
和as
,等等。它们通常位于名为binutils和binutils-dev(Debian和朋友)或binutils-devel(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有联系是很奇怪的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句