Fedora

無法執行 ld:錯誤 126

  • September 1, 2019

我已經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

我真的不知道它為什麼會發生,或者它是否可以以其他方式修復,或者它是否會在其他地方產生影響,但我剛剛重新安裝binutils,似乎它解決了它。

所以只需輸入

sudo yum reinstall binutils

應該沒問題。

引用自:https://unix.stackexchange.com/questions/538395