我意外地覆盖了 /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