如何在 Linux 上修复 Rust 错误“linker ‘cc’ not found”

今天我在测试一个网络带宽利用工具,叫做 乐队 在我的 Ubuntu 虚拟机上。 该工具是在 Rust 编程语言,所以我尝试使用 货物 包管理器。 在编译过程中,我遇到了以下错误:

Updating crates.io index Installing bandwhich v0.6.0 Compiling libc v0.2.66 error: linker `cc` not found | = note: No such file or directory (os error 2)  error: aborting due to previous error  error: failed to compile `bandwhich v0.6.0`, intermediate artifacts can be found at `/tmp/cargo-installrqSeTB`  Caused by: could not compile `libc`.  To learn more, run the command again with --verbose.

正如您在上面的输出中看到的,Cargo 找不到 cc 编译器程序来编译给定的应用程序。 由于 Rust 还没有包含它自己的链接器,你需要有一个像这样的 C 编译器 gcc 安装以充当链接器。

要在 Ubuntu 上安装 gcc,只需运行:

$ sudo apt install build-essential

如果您使用不同的 Linux 操作系统,请参考以下链接以安装开发工具,其中包括必要的应用程序,例如 GNU GCC C/C++ 编译器、make 和调试器等。

  • 如何在 Linux 中安装开发工具

安装gcc后,报错“linker cc not found“不见了!然后我就可以毫无问题地安装应用程序了。

如果即使已经安装了 GCC 仍然出现相同的错误,请安装 cmake 然后再试一次。 Cmake 在大多数 Linux 发行版的官方存储库中都可用。

要在 Arch Linux 上安装 Cmake,请启用 [Extra] 存储库并运行:

$ sudo pacman -S cmake

在 Debian、Ubuntu、Linux Mint 上:

$ sudo apt install cmake

在 Fedora、RHEL、CentOS、AlmaLinux 和 Rocky Linux:

$ sudo dnf install cmake

在 openSUSE 上:

$ sudo zypper install cmake

安装 gcc 为我解决了这个问题。

更新:

在 NixOS 中,即使安装后也无法解决此问题“GCC“ 和 ”make”。如本文所述 GitHub线程,你应该试试这个 nix-shell, 代替 nix-env.

祝你好运!

资源:

  • https://users.rust-lang.org/t/could-not-exec-the-linker-cc-no-such-file-or-directory/8614

编译器GCCLinuxRust编程语言rust-lang疑难解答