无法执行 ld:错误 126

无法执行 ld:错误 126

我已经f30安装了 3 周,当我尝试编译C++可能的fortran代码时,我不断看到这个错误。

这是一个连接到的错误lderror: ld returned 126 exit status

我试图调查它,但到目前为止我还没有任何解释。

我可以分享的是,ld其中/usr/bin有一个来自 的软链接/etc/alternatives

[astamato@pcen35240 ~]$ ls -al /usr/bin/ld*
lrwxrwxrwx. 1 root root      20 Apr 26 04:27 /usr/bin/ld -> /etc/alternatives/ld
-rwxr-xr-x. 1 root root   13536 Aug 11 11:27 /usr/bin/ld.bfd
-rwxr-xr-x. 1 root root    5441 Jun  6 13:55 /usr/bin/ldd
-rwxr-xr-x. 1 root root 3853632 Mar  6 11:00 /usr/bin/ld.gold

当我尝试ld自行执行时(因此不从其他程序或安装脚本调用它),我得到以下信息

[astamato@pcen35240 talys]$ /usr/bin/ld
bash: /usr/bin/ld: cannot execute binary file: Exec format error

[astamato@pcen35240 talys]$ sudo /usr/bin/ld
/usr/bin/ld: /usr/bin/ld: cannot execute binary file

然后我又搜了原来的/etc/alternatives位置,又是软链接

[astamato@pcen35240 talys]$ ls -al /etc/alternatives/ld*
lrwxrwxrwx. 1 root root 15 Apr 26 04:27 /etc/alternatives/ld -> /usr/bin/ld.bfd

令人惊讶的是,该链接指向ld.bfd一个/usr/bin.

我试图找到版本ld.bfd但似乎无法执行

[astamato@pcen35240 talys]$ /usr/bin/ld.bfd --version
bash: /usr/bin/ld.bfd: cannot execute binary file: Exec format error
[astamato@pcen35240 talys]$ sudo /usr/bin/ld.bfd --version
/usr/bin/ld.bfd: /usr/bin/ld.bfd: cannot execute binary file

关于如何理解问题所在并解决问题有什么想法吗?

编辑

根据 @steeldriver 的建议,我报告以下输出

$ file -L /usr/bin/ld.bfd
/usr/bin/ld.bfd: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=d88173c7f8919542e59738a8c5b626f6ed81d7d8, stripped, too many notes (256)
$ uname -m
x86_64

答案1

我真的不知道为什么会发生这种情况,或者是否可以以其他方式修复它,或者它是否会在其他地方产生影响,但我刚刚重新安装binutils,似乎它解决了它。

所以只需输入

sudo yum reinstall binutils

应该没问题。

相关内容