我已经f30
安装了 3 周,当我尝试编译C++
可能的fortran
代码时,我不断看到这个错误。
这是一个连接到的错误ld
:error: 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
应该没问题。