![collect2:致命错误:找不到“ld”编译终止](https://linux22.com/image/1027972/collect2%EF%BC%9A%E8%87%B4%E5%91%BD%E9%94%99%E8%AF%AF%EF%BC%9A%E6%89%BE%E4%B8%8D%E5%88%B0%E2%80%9Cld%E2%80%9D%E7%BC%96%E8%AF%91%E7%BB%88%E6%AD%A2.png)
我意外地覆盖了 /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