collect2:致命错误:找不到“ld”编译终止

collect2:致命错误:找不到“ld”编译终止

我意外地覆盖了 /usr/bin 中的 ld 文件。然后我删除了该文件并重新安装了 binutils。现在,当我尝试使用 g++ 编译 C++ 文件时,我得到了标题中的错误。

ld 文件位于 /usr/bin 目录中,尽管它看起来像是一个损坏的符号链接。它指向一个名为 x86_64-linux-gnu-ld 的文件,但我在任何地方都找不到它。我该如何修复这个问题?

答案1

/usr/bin/x86_64-linux-gnu-ld本身就是一个符号链接,/usr/bin/x86_64-linux-gnu-ld.bfd

$ ls -l /usr/bin/x86_64-linux-gnu-ld
lrwxrwxrwx 1 root root 23 Mar 12  2022 /usr/bin/x86_64-linux-gnu-ld -> x86_64-linux-gnu-ld.bfd

/usr/bin/x86_64-linux-gnu-ld.bfd由 binutils-x86-64-linux-gnu 包提供

$ dpkg -S $(realpath /usr/bin/ld)
binutils-x86-64-linux-gnu: /usr/bin/x86_64-linux-gnu-ld.bfd

因此尝试重新安装 binutils-x86-64-linux-gnu

相关内容