如何在Windows 10上的Debian中修复Rust错误“找不到链接器'cc'”?

231

我在 Windows 10 上运行 Debian(使用 Windows 子系统 Linux),并使用以下命令安装了 Rust:

curl https://sh.rustup.rs -sSf | sh

安装过程中没有错误,但是当我尝试使用 rustc 进行编译时出现了错误 linker 'cc' not found

12个回答

363
Linux Rust安装程序没有检查编译器工具链,但似乎假定您已经安装了C链接器!最好的解决方案是安装经过验证的gcc工具链。
sudo apt install build-essential

如果您需要针对另一种架构进行编译,请安装相应的工具链,并按照以下方式设置编译目标:

rustc --target=my_target_architecture -C linker=target_toolchain_linker my_rustfile.rs

4
谢谢!这对我有用。我按建议安装了Microsoft C++工具,但那没用。我意识到可能是因为我在Windows上的Ubuntu中运行rustc。 - Taylor Fraley
4
我也一样。我在WSL上运行它。 - jedmao
2
我必须在Ubuntu 20.04 WSL上安装cmake sudo apt install cmake - Maksymilian Mulawa
2
您可以通过将以下内容添加到.repo或工作区的.config文件来在选择目标时配置链接器:例如:[target.aarch64-unknown-linux-gnu] linker = "aarch64-linux-gcc" - jaques-sam
我还需要在 WSL Ubuntu 上运行 sudo apt install pkg-config 来完全解决这个问题。幸运的是,Cargo 提供了非常详细的信息,因此我能够很快地解决它 :) - Lorenzo Felletti
显示剩余3条评论

63

我运行了以下两个命令,结果成功了。

sudo apt-get update
sudo apt install build-essential

简单明了。我的问题得到了解决。谢谢。 - Muhammad Tariq

53

你需要安装一些依赖项

对于 Arch Linux: sudo pacman -S base-devel

对于 Ubuntu: sudo apt install build-essential

对于 Centos: sudo yum install gcc

对于 Solus: sudo eopkg it -c system.devel


2
问题涉及到Windows子系统用于Linux。 - Roger Collins
1
答案也许是,因为WSL允许安装不同的Linux发行版。 - Michael Piefel

25

CentOS解决方案:

yum -y install gcc

12
如果您正在使用WSL2-Ubuntu,请尝试使用以下命令更新软件包:
sudo apt-get update
sudo apt install build-essential

7

我在wsl1中运行了以下命令,它可以正常工作。

sudo apt-get update
sudo apt install build-essential

2

您可以通过在 Linux 中添加构建必备软件包来解决此问题。

sudo apt install -y build-essential


2
Solus的解决方案:
sudo eopkg it -c system.devel

1
请在安装设置工具之前执行“更新和升级”。

1

看起来Rust假定您已经有C编译器了。 对于Fedora:

sudo dnf install gcc


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接