在 Windows 上安装 Rust

use*_*677 7 windows gcc rust

我试图让 Rust 在我的 Windows 机器上工作。我按照说明操作,但是当我尝试 hello world 程序时,它会吐出以下内容。看起来它无法链接到 gcc .. 我有 gcc 在那里。有人可以帮我弄清楚这里的问题是什么吗?

$ rustc  foo.rs

error: linking with `gcc` failed: exit code: 1
note: gcc arguments: '-m32' '-LC:\Program Files (x86)\Rust\bin\rustlib\i686-pc-m
ingw32\lib' '-o' 'foo' 'foo.o' '-shared-libgcc' '-LC:\MinGW\msys\1.0\home\ENwank
wo\.rust' '-LC:\MinGW\msys\1.0\home\ENwankwo' 'C:\Program Files (x86)\Rust\bin\r
ustlib\i686-pc-mingw32\lib\libstd-3e5aeb83-0.9.rlib' 'C:\Program Files (x86)\Rus
t\bin\rustlib\i686-pc-mingw32\lib\libgreen-83b1c0e5-0.9.rlib' 'C:\Program Files
(x86)\Rust\bin\rustlib\i686-pc-mingw32\lib\librustuv-2ba3695a-0.9.rlib' '-lws2_3
2' '-lpsapi' '-liphlpapi' '-lmorestack'
note: gcc: fatal error: -fuse-linker-plugin, but liblto_plugin-0.dll not found
compilation terminated.

error: aborting due to previous error
task 'rustc' failed at 'explicit failure', C:\bot\slave\dist2-win\build\src\libs
yntax\diagnostic.rs:75
task '<main>' failed at 'explicit failure', C:\bot\slave\dist2-win\build\src\lib
rustc\lib.rs:453
Run Code Online (Sandbox Code Playgroud)

pcl*_*nux 9

这是如何使用 Visual Studio Code 和可选的 MSYS2 MinGW 在 Windows 上安装 Rust

您可以在不安装“Microsoft C++ Build Tools”的情况下安装 Rust。您还可以将 Rust 与MSYS2 套件中的gcc或工具一起使用。clang

我不想在 Windows 上使用所需的“Microsoft C++ 构建工具”安装 Rust,因为这需要太多的磁盘空间。要在 Windows 上获取 Microsoft C++ 构建工具,您需要下载完整的 Windows SDK,该 SDK 非常大(我认为超过 4GB)。

您无需安装 MSYS2 即可运行和调试 Rust 程序。

如果您想使用MSYS2 中包含的gccclang编译器(您需要在 MSYS2 安装的单独步骤中安装它们,使用 MSYS2 中的 pacman 包管理器版本),那么您可以安装 MSYS2。

(MSYS2 还允许您使用 gcc 或 clang 编译器在安装了 C++ 扩展的 Visual Studio Code 中轻松构建 C++ 程序)。

MSYS2 安装版本需要 1.61 GB(用于安装的工具mingw-w64-x86_64-toolchain占用了 1083.49 MiB 的磁盘空间,而整个 MSYS2 套件的磁盘空间为 1.61 MiB)。

Rust 安装了大约 1.46 GB 的文件 - 大部分在"C:\Users\user\.rustup"使用参数“x86_64-pc-windows-gnu”时的文件夹中(对于 MSYS MinGW 安装)。

当使用“x86_64-pc-windows-msvc”(用于“Microsoft C++ Build Tools”安装)时,Rust 在安装后占用 900 MB。

为了在 VS Code 中获得更好的 Rust 体验,建议从 VS Code Marketplace 在线安装rust-analyzer扩展,或者使用帖子底部 [Link1] 中的 Rust 插件来代替它。

您所要做的就是

  • 安装 Visual Studio 代码
  • (可选 - 安装 MSYS2)
  • 安装 Rust
  • 如果没有 Pyton,请安装它
  • 将所需的文件夹添加到 PATH 变量
  • 在 VS Code 中安装 rust-analyzer 和 CodellDB 扩展

在本指南结束时,您应该能够在 Visual Studio Code 中运行和调试 rust 程序。

MSYS2 是可选的,如果您想使用套件中的 gcc 或 clang,则可以安装它 - 创建货物配置文件后,将使用cargo build和命令(默认情况下,如果安装了两个编译器,或者将其设置为执行以下操作)这)。cargo runmsys64\mingw64\bin\clang++.exe..\msys64\mingw64\bin\gcc.exe


只需按照下面第 1 部分中的安装即可。(这部分仅供参考 - 它列出了安装所需的文件和文件夹以及我如何选择安装目录 - )

我在这些文件夹中安装了程序:

   D:\Applications\msys64
   D:\Applications\VSCode
Run Code Online (Sandbox Code Playgroud)

rustup-init.exe 将 .cargo 文件夹安装在默认位置:

C:\Users\user\.cargo


(  The settings files for VS Code are created and edited inside the Visual Studio Code editor, you don't need to open the files form windows explorer:
   C:\Users\user\AppData\Roaming\Code\User\settings.json
   C:\Users\user\AppData\Roaming\Code\User\keybindings.json
)
Run Code Online (Sandbox Code Playgroud)

第 1 部分 - 安装步骤及详细信息:

我将使用“引号”内运行安装程序所需的代码 - 运行命令时删除引号。例如:“pacman -Syu” - 删除引号并运行 pacman -Syu 。

更改教程中的路径以进行安装。

所需的程序是 VS Code、MSYS2(MSYS2 有来自 MinGW 的文件/工具)、用于代码补全的 VS Code 的rust-analyzer 扩展以及用于调试的CodeLLDB 扩展(与作者 Vadim Chugunov 合作)。

确保 Windows 防火墙设置允许 MSYS2、VS Code、Rust 安装程序 - rustup-init.exe(稍后可能是 rustup - 在本教程中您不需要它)和D:\Applications\msys64\usr\bin\pacman.exe. 这将允许程序下载组件或插件所需的文件。

a) 从 filehorse.com 下载适用于 Windows 的 Visual Studio Code便携版本并解压文件(或按照您喜欢的方式安装)。打开 VS Code 并从设置中禁用 2 个遥测选项:

单击“编辑”>“首选项”>“设置”,在输入框中键入遥测并禁用 2 个遥测选项(或按组合键:Ctrl + Shift + P,键入open settings并按 Enter 打开“ settings.json”文件),这将放入“ settings.json”文件中将此代码放在主大括号和右大括号之间:

"telemetry.enableCrashReporter": false,
"telemetry.enableTelemetry": false
Run Code Online (Sandbox Code Playgroud)

在 VS Code 中使用的好字体有:Fira Code、Consolas、DejaVu Sans Mono、Droid Sans Mono Slashed、Inconsolata-g、Bitstream Vera Sans Mono、Lucida Console,也许还有 Menlo Regular(在 MacOS 中使用)、Meslo LG DZ。

像“Fira Code”这样的字体在字体内部存在字体连字。“Fire Code”没有传统的字体连字,例如 ft 未连接,但具有特定于编码的连字,例如这些字符组合的外观发生了变化,并且通常在启用连字的情况下看起来更好:fl, ->, <=, >=。请参阅帖子下面的图片,了解打开和关闭字体连字的图像。ligatures要启用字体连字,请打开 Visual Studio Code 的首选项,在搜索框中搜索,然后启用设置: 'Editor:Font Ligatures' 。

您可以更改默认用户数据目录:

“C:\Users\user\AppData\Roaming\Code”到您想要的位置,例如:

“D:\Applications\VSCode\UserData\Code”

通过使用参数创建 VSCode 的快捷方式--user-data-dir,您将使用该快捷方式启动 VS Code。

为此,请使用 Target 设置创建 VSCode 的快捷方式:D:\Applications\VSCode\Code.exe --user-data-dir "D:\Applications\VSCode\UserData\Code"

b) 此步骤是可选的,仅当您想使用 MSYS2 中的 gcc 或 clang 时才执行此步骤:

您可以在 Visual Studio Code 中运行 Rust 程序并编译它们,而无需安装 MSYS2。仅当您想使用其 gcc 或 clang 编译器时才安装 MSYS2。

可选 - 安装 MSYS2 - 大约 1.61 GB。下载 MSYS2 并按照安装说明进行操作 - 我将提到最重要的步骤:

  • 安装 MSYS2 并保持选中复选框:在安装结束时“运行 MSYS2 64 位”。

  • pacman -Syu在安装后出现的控制台中运行。这是 MSYS2 外壳。

!!! 对于下一步,请小心选择正确的快捷方式,不要选择 MinGW,所以

  • 从开始菜单运行名为“ MSYS2 MSYS ”的快捷方式(“D:\Applications\msys64\msys2_shell.cmd -msys”)。这是 MSYS2 外壳。在shell里面运行pacman -Su

    下一步是下载为 Windows 平台构建用 Rust 编写的程序所需的程序:

  • 从开始菜单运行“ MSYS2 MinGW 64-bit ”(它是“D:\Applications\msys64\msys2_shell.cmd -mingw64”)。这是针对 MinGW 的,它的参数与上面使用的快捷方式不同。

  • 跑步pacman -S mingw-w64-x86_64-toolchain

在安装过程中按 Enter 键,然后输入“y”。

msys2.org 页面上的指南说还可以通过运行命令“pacman -S --needed base-devel mingw-w64-x86_64-toolchain”使用选项“--needed base-devel”安装一些软件包,但是我认为这里不需要它们。

如果需要,您可以从命令“--needed base-devel”安装的工具列表中安装单个工具及其依赖项,方法是在安装过程中选择相应的编号,例如您可以只安装而不是make其余的“--needed base-devel”包中存在的工具。

我使用 VS Code 在 rust 中编写的简单 rust“hello world”程序以及 rustc 和 Cargo 工具/程序运行良好,无需安装“--needed base-devel”文件。

运行和调试简单的 Rust 程序不需要 --needed base-devel 文件,但如果需要,您可以安装它们。

要使用 MSYS2 中的 gcc 或 clang 链接器和编译器,您必须创建该C:\Users\user\.cargo\config文件:

要使用cargoclang++.exe请将这些行添加到C:\Users\user\.cargo\config文件中:

[target.x86_64-pc-windows-gnu]
linker = "D:\\Applications\\msys64\\mingw64\\bin\\clang++.exe"
ar = "D:\\Applications\\msys64\\mingw64\\bin\\llvm-ar.exe"
Run Code Online (Sandbox Code Playgroud)

如果要将链接器更改为 gcc,请创建C:\Users\user\.cargo\config包含以下行的文件:

[target.x86_64-pc-windows-gnu]
linker = "D:\\Applications\\msys64\\mingw64\\bin\\gcc.exe"
ar = "D:\\Applications\\msys64\\mingw64\\bin\\ar.exe"
Run Code Online (Sandbox Code Playgroud)

(clang++.exe 与同一目录中的 clang.exe 是同一文件。)我已安装所有内容并运行良好 - 我可以运行程序并使用 gcc 或 clang 调试它们。

c) 在 Windows 上安装 Rust 从 rust-lang.org 下载安装程序:rustup-init.exe

浏览器应该识别出您使用的是 Windows,并为您提供“下载 RUSTUP-INIT.EXE (64-BIT)”的链接,即:[...]static.rust-lang.org/rustup/dist/x86_64 -pc-windows-msvc/rustup-init.exe

Run rustup-init.exe . It is better to launch a console with cmd.exe and launch rustup-init.exe from there.
Run Code Online (Sandbox Code Playgroud)
  • 通过输入 y 并按 Enter 键来选择“继续?(y/N)”。

  • 使用键盘选择“2) 自定义安装”。

  • 粘贴或键入选项:x86_64-pc-windows-gnu

  • 按 Enter 键查看其余选项。

  • 最后在控制台中输入“1”,然后按 Enter,在“当前安装选项”中选择“1 继续”选项。

如果您已经安装了 rustup,可能会出现问题。如果您已经安装了 rustup,请按照页面底部的Source 1 Link中的指南中的指示操作,其中包含安装 rust-and-cargo-for-mingw-with-msys2 的分步说明:

这是该帖子的引用:

“注意:如果 rustup 已安装,则重新运行 rustup-init 实际上不会安装所请求的工具链。相反,如果您已经拥有基于 MSVC 的工具链,请运行 rustup toolchain install stable-x86_64-pc-windows-gnu。然后运行rustup default stable-x86_64-pc-windows-gnu 将基于 GNU 的工具链设置为默认值。”

d) 将文件夹添加到 PATH

将包含 rust 和 msys2 有用程序的文件夹添加到 Windows 系统PATH 变量

将文件夹添加到系统 PATH 变量将允许 VS Conde 控制台(默认为 PowerShell(如果需要,您可以将其更改为命令提示符或其他 shell))识别命令:cargo、rustc 等。这将使运行和使用 rust-analyzer 和 CodeLLDB 扩展在 VS Code 中调试 rust 程序很容易,因为您无需配置任何其他内容。

要将文件夹添加到 PATH,请使用“系统属性”窗口:

  • 右键单击“我的电脑”并选择“属性”
  • 单击高级系统设置
  • 在“高级”选项卡中,单击“环境变量”
  • 在“用户的用户变量”下,单击PATH变量并添加 Cargo\bin 文件夹和 mingw64\bin 文件夹的位置(加上 \msys64):
;C:\Users\user\.cargo\bin;D:\Applications\msys64;D:\Applications\msys64\mingw64\bin
Run Code Online (Sandbox Code Playgroud)

这会将文件夹“ C:\Users\user\.cargo\bin”、“D:\Applications\msys64”、“D:\Applications\msys64\mingw64\bin”添加到 PATH 变量。(stackoverflow 不擅长格式化 \. 反斜杠后跟一个点 - 你必须使用另一个反斜杠作为转义字符)

测试 PATH 变量是否已更新,请打开一个新的命令提示符或 PowerShell 窗口,并在此窗口中运行cargo --versiongcc --version(如果您安装了 MSYS2 和 gcc.exe)或rustc --version在“命令提示符”窗口和 PowerShell 窗口内运行。如果未找到命令,请重新启动计算机,以便 Windows 可以更新 PATH 变量。对我来说,更改无需重新启动即可生效,我只需打开一个新的 shell 窗口。

e) 安装 VS Code 的 Rust 扩展

rust-analyzerCodeLLDB需要安装 Python。

以安装Python 3.6.3为例,安装时选择添加到路径中

从 VS Code Marketplace 安装所需的扩展。打开VS Code,点击右侧工具栏的扩展按钮,搜索并安装扩展:

  • rust-analyzer -(发布者:matklad);
  • CodeLLDB(出版商:Vadim Chugunov);

我不必执行下一步,因此您也不应该这样做 - 如果 rust-analyzer 未正确加载/运行,您可能需要安装 rust 源代码。使用“命令提示符”运行:进行rustup component add rust-src安装rust 源代码。我不需要安装它,rust-analyzer 运行良好[顺便说一下,VS Code 在测试过程中可以连接到互联网]。

[运行 Visual Studio Code 时,您可能会收到一条消息,告诉您安装 .Net Framework 4.5.2。如果在线版本安装失败,请下载并安装离线版本。(在没有某些更新的 Windows 7 上,您可能需要下载并安装证书:MicRooCerAut2011_2011_03_22.crt,并安装一些 Windows 更新:Windows6.1-KB2533623-x64、windows6.1-kb2813430-x64,也许还有 Windows6.1- KB4019990-x64)]

第 2 部分 - 使用 VS Code 运行和调试 Rust 程序

使用 VS Code 和 Msys2 在 Rust 中运行和编译:

将文件夹添加到 PATH 并安装扩展后,您基本上需要运行:

  1. 货物初始化
  2. 货物运行 - 运行程序。
  3. 按F5键,或者单击调试按钮来调试代码。

首先你需要:

  • 为您的 Rust 应用程序创建一个文件夹。
  • 打开 VS Code 内的文件夹。
  • 按 Ctrl+{`} 打开终端面板。默认 shell 为“PowerShell”。

您可以使用左侧(靠近加号按钮和 x 按钮)的向下箭头从“终端”窗格中选择“命令提示符”shell。或者,您可以将 VS Code 设置为使用“命令提示符”作为默认 shell,方法是将这些行添加到“ settings.json ”文件(主 Visual Studio 设置文件)中。

"terminal.integrated.defaultProfile.windows": "Command Prompt",
Run Code Online (Sandbox Code Playgroud)

您可以使用 PowerShell 或“命令提示符”,它们都可以正常工作。

  • cargo init在终端内运行以创建项目文件。

  • 如果需要,请编辑 main.rs 文件。它位于里面'app folder'\src\main.rs

  • cargo run在终端内运行

如果您安装了rust-analyzer,扩展程序会在 main() 函数顶部放置 2 个按钮作为弹出窗口。它们被命名为“运行”和“调试”,如果单击它们,它们就会执行其名称所示的操作。

调试,请在 main.rs 文件中放置一个断点,然后按 F5(菜单项“运行”>“开始调试”)或单击 rust-analyzer 扩展放置的 main() 函数顶部的“调试”按钮(如果已安装) 。

如果单击调试按钮,则不必创建 launch.json 配置文件。如果您按F5键或单击菜单项Run > Start Debugginglaunch.json文件将添加到您的文件夹中。

只需在消息框中单击“是”即可自动生成launch.json文件。然后再次按 F5 键开始调试。现在您可以在调试过程中单步调试代码。


链接1:https ://marketplace.visualstudio.com/items?itemName=rust-lang.rust

链接到字体连字示例 - 字体“Fira Code”的图像:

图片链接:使用字体连字编码字体


Dan*_*ath 3

这个问题很老了,但与此同时,很多事情都发生了变化。

\n\n

在 Windows 上安装最简单的方法是转到Rust 安装页面并下载并运行 rustup-init.exe。它安装rustc,rustup和类似的工具。它只是有效\xe2\x84\xa2。

\n