windows - 使用 Msys2 为 mingw 安装 Rust 和 Cargo 的分步说明?

标签 windows rust mingw msys2 rustup

我尝试在 Cygwin 上安装 Rust,但无法与 mingw 链接。现在我想用 Msys2 安装它。我已经安装了 Msys2 和 Mingw。我试着关注 this wiki page但我在 2 号迷路了:

Download and install Rust+Cargo using the installer but be sure to disable the Linker and platform libraries option.

它指的是 the install page 上的“rustup-init.exe”吗? ?我应该双击运行这个文件还是从 Msys2 运行它?我尝试从 Msys2 运行并获得选项:

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

我不知道下一步该做什么。

最佳答案

您链接到的在 Windows 上使用 Rust 页面是在 rustup 将安装程序替换为安装 Rust 的默认选项之前的日期。 Installers仍然可用,但如果可能,您应该使用 rustup,因为它可以轻松更新和同时使用多个工具链(例如稳定版、测试版和夜间版)。如果您必须使用安装程序,只需选择 x86_64-pc-windows-gnu 安装程序,然后按照 在 Windows 上使用 Rust 页面中的步骤操作。如果您正在使用 rustup,请继续阅读。

默认情况下,Windows 上的 rustup 安装针对 MSVC 工具链的编译器和工具,而不是 GNU/MinGW-w64 工具链。在初始菜单中,选择 2) 自定义安装。当询问主机三元组时,输入 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 的工具链设置为默认值。

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(您需要在 /c/Users/yourname/.cargo/bin:PATH).

关于windows - 使用 Msys2 为 mingw 安装 Rust 和 Cargo 的分步说明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47379214/

相关文章:

python - 使用 pyppeteer 连接到现有的 chrome

用于减小 PDF 文件大小的 Windows 批处理文件

rust - 我可以在循环中重置对本地的借用吗?

rust - 用 Hyper 显示响应体只显示响应体的大小

memory - PhantomPinned 成员会使我的结构具有固定的内存地址吗?

qt - 如何强制 Qt Creator 使用 MinGW 而不是 Visual Studio

c++ - 这个菱形继承(钻石问题) UB 是 MinGW 中的错误吗?

python - 告诉窗口在哪个监视器上显示对话框

windows - PowerShell,不包含方法 'items'

eclipse - nameWindow() 导致 opencv 2.3.1 崩溃? (XP 上的 Eclipse+MinGW,C++)