逐步说明如何在Msys2上安装Rust和Cargo?

30

我尝试在Cygwin上安装Rust,但未能与mingw链接。现在我正在尝试使用Msys2进行安装。我已经安装了Msys2和Mingw。我尝试按照这个维基页面的说明操作,但是在第二步时我迷失了方向:

下载并安装Rust+Cargo安装程序,但务必禁用链接器和平台库选项。

它是否指的是安装页面上的"rustup-init.exe"?我应该双击运行此文件还是从Msys2运行它?我尝试从Msys2运行并得到以下选项:

1) Proceed with installation (default)  
2) Customize installation  
3) Cancel installation

我不知道接下来该做什么。

3个回答

65
你提供的链接中的Using Rust on Windows页面是在rustup替换安装程序成为默认选项之前发布的。安装程序仍然可用,但如果可能的话,应该使用rustup,因为它可以轻松更新和同时使用多个工具链(例如stable、beta和nightly)。如果必须使用安装程序,则只需选择x86_64-pc-windows-gnu安装程序,并按照Using Rust on Windows页面上的步骤进行操作。如果您正在使用rustup,请继续阅读。
默认情况下,Windows上的rustup安装编译器和工具以针对MSVC工具链而不是GNU/MinGW-w64工具链。在初始菜单中,选择2) Customize installation。当要求输入主机三元组时,输入x86_64-pc-windows-gnu。然后根据其他问题做出选择,然后进行安装。 注意:如果已经安装了rustup,则重新运行rustup-init实际上不会安装所请求的工具链。相反,如果您已经有基于MSVC的工具链,则运行rustup toolchain install stable-x86_64-pc-windows-gnu。然后运行rustup default stable-x86_64-pc-windows-gnu将GNU-based工具链设置为默认值。

Rustup将自动安装MinGW链接器和平台库(作为rust-mingw组件的一部分),并拒绝让您删除它们。如果您更喜欢使用MSYS2安装的MinGW链接器和库,您需要创建一个.cargo/config文件(可以在您的个人资料目录中,即C:\Users\you\.cargo\config,也可以在项目目录中,如果此配置特定于一个项目)。该文件的内容可能如下所示:

[target.x86_64-pc-windows-gnu]
linker = "C:\\msys2\\mingw64\\bin\\gcc.exe"
ar = "C:\\msys2\\mingw64\\bin\\ar.exe"

Rustup 将会修改 PATH 环境变量,除非你告诉它不要这样做。然而,当你启动 MSYS2 时,默认情况下会重置 PATH,因此当你尝试从 MSYS2 shell 调用 cargorustc 时,可能找不到它们。你需要编辑你的 .profile/.bash_profile 脚本以正确设置 PATH(你需要在 PATH 前面添加 /c/Users/yourname/.cargo/bin:)。


首先非常感谢您的帮助。我需要确认您所说的 rustup 是指运行 ./rustup-init.exe 文件吗?我在原问题中添加了编辑,说明了我尝试过的内容。 - ThangNguyen
当我运行以下命令时: $ rustup default stable-x86_64-pc-windows-gnu bash: rustup: command not found - ThangNguyen
1
你需要在你的~/.profile文件中添加一行类似于export PATH="/c/Users/Thang/.cargo/bin:$PATH"的代码,然后重新启动你的 shell。 - Francis Gagné
3
只是一条提示,使用以下命令将gcc安装到msys中:pacman -S mingw-w64-x86_64-toolchain(或x86变体)。 - Aleksander Fular
1
+1 给 rustup default 部分 -- 这是我错过的部分,让它工作起来。我假设它会根据控制台自动选择(类似于 cmake 的工作方式,尽管那是一种不同的语言)。然而,编译器错误通过 rustup default 得到了修复。 - Zoe stands with Ukraine
显示剩余4条评论

3

我按以下方式解决了我的问题:

  1. 运行 rustup toolchain install stable-x86_64-pc-windows-gnu
  2. 其次打开 .rustup 文件夹
  3. 打开 settings.toml 文件
  4. 将第一行更改为:default_toolchain = "stable-x86_64-pc-windows-gnu" 完成!

4
您无需手动编辑 settings.toml,只需使用 rustup default stable-x86_64-pc-windows-gnu 命令即可。 - Mark

1

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