rust安装

文章目录

  • [在 Windows 上安装 rustup](#在 Windows 上安装 rustup)
    • [RUSTUP_HOME CARGO_HOME 自定义存放位置](#RUSTUP_HOME CARGO_HOME 自定义存放位置)
    • [1. x86_64-pc-windows-msvc(官方推荐)Visual Studio Build Tools + rustup](#1. x86_64-pc-windows-msvc(官方推荐)Visual Studio Build Tools + rustup)
    • [86_64-pc-windows-gnu MSYS2 + rustup](#86_64-pc-windows-gnu MSYS2 + rustup)
      • [pacman -S mingw-w64-ucrt-x86_64-gcc 是什么?](#pacman -S mingw-w64-ucrt-x86_64-gcc 是什么?)
      • [pacman -S mingw-w64-ucrt-x86_64-gcc 需要把以前安装的mingw 删除吗](#pacman -S mingw-w64-ucrt-x86_64-gcc 需要把以前安装的mingw 删除吗)
        • [path冲突 不要删除老的mingw的path](#path冲突 不要删除老的mingw的path)
          • [直接移除老的mingw64 vscode编c++会失败](#直接移除老的mingw64 vscode编c++会失败)
            • [方案1 VS Code C++ 也用 MSYS2 即 打开MSYS2 UCRT64 终端进入项目目录,运行code .-》vscode打开项目-》写代码编译允许](#方案1 VS Code C++ 也用 MSYS2 即 打开MSYS2 UCRT64 终端进入项目目录,运行code .-》vscode打开项目-》写代码编译允许)
            • [方案2 vscode c++ 用MinGW ,Rust 只在 MSYS2 里跑,打开MSYS2 UCRT64 终端进入项目目录,运行code . ->vscode终端 cargo build](#方案2 vscode c++ 用MinGW ,Rust 只在 MSYS2 里跑,打开MSYS2 UCRT64 终端进入项目目录,运行code . ->vscode终端 cargo build)
            • [方案 4(彻底清理 / 卸载旧 MinGW64 / MINGW)](#方案 4(彻底清理 / 卸载旧 MinGW64 / MINGW))
            • [把 PATH 保留成 UCRT64 的路径让 VS Code 也用可行吗?不可以](#把 PATH 保留成 UCRT64 的路径让 VS Code 也用可行吗?不可以)
        • [为什么有人要把 mingw64 加入系统 PATH?](#为什么有人要把 mingw64 加入系统 PATH?)
    • ucrtmingw64和mingw64的区别
    • [rustup-init.exe 到底是干嘛的?](#rustup-init.exe 到底是干嘛的?)
      • [Rust 明明"帮下载了 toolchain",为什么仍然需要自己安装Visual Studio Build Tools(MSVC)或 MinGW / MSYS2(GNU)](#Rust 明明“帮下载了 toolchain”,为什么仍然需要自己安装Visual Studio Build Tools(MSVC)或 MinGW / MSYS2(GNU))
  • [MSVC vs GNU,MSVC 和 GNU 都不是 Rust,也不是语言,它们是"把代码变成 Windows 程序"的两套工具](#MSVC vs GNU,MSVC 和 GNU 都不是 Rust,也不是语言,它们是“把代码变成 Windows 程序”的两套工具)
  • [从 rustup v1.25.0+ 版本开始,Windows 下无需手动安装 msvc 了,自动下载安装:https://blog.rust-lang.org/2022/07/11/Rustup-1.25.0.html](#从 rustup v1.25.0+ 版本开始,Windows 下无需手动安装 msvc 了,自动下载安装:https://blog.rust-lang.org/2022/07/11/Rustup-1.25.0.html)

https://course.rs/first-try/installation.html

在 Windows 上安装 rustup

https://blog.csdn.net/W_chuanqi/article/details/146986310

勾选左上角的 C++ 构建工具,然后右侧的方框就会出现。(不同版本可能有所不同)!【sdk会自动勾选】

不需要要加到path中,我没加没有报未安装 Microsoft C++ Build Tools的提示

RUSTUP_HOME CARGO_HOME 自定义存放位置

RUSTUP_HOME 和 CARGO_HOME

👉 只是用来告诉 Rust:

"你的东西存到哪"

需要在用户环境变量新增键值对【配置完,需要重新打开终端】,如

1、RUSTUP_HOME:D:\Soft\Rust\rustup_home

2、CARGO_HOME:D:\Soft\Rust\cargo_home

RUSTUP_HOME = D:\Soft\Rust\rustup_home


CARGO_HOME = D:\Soft\Rust\cargo_home

1. x86_64-pc-windows-msvc(官方推荐)Visual Studio Build Tools + rustup

86_64-pc-windows-gnu MSYS2 + rustup

pacman -S mingw-w64-ucrt-x86_64-gcc 是什么?

"在 MSYS2 里安装 MinGW 工具链"

ucrtmingw64和mingw64的区别?


MSYS2 = 现代、规范、可维护

独立 MinGW = 能用、但老、不可控




pacman -S mingw-w64-ucrt-x86_64-gcc 需要把以前安装的mingw 删除吗

❌ 不需要先把以前安装的 MinGW 删除

⚠️ 但要避免"同时生效"造成冲突

不要让 Rust 和 C++ 抢同一个 gcc

直接从 PATH 移除 MinGW,会影响 VS Code 编译 C / C++代码

path冲突 不要删除老的mingw的path


直接移除老的mingw64 vscode编c++会失败
方案1 VS Code C++ 也用 MSYS2 即 打开MSYS2 UCRT64 终端进入项目目录,运行code .-》vscode打开项目-》写代码编译允许

方案一(最推荐):VS Code C++ 也用 MSYS2

一个 gcc,所有项目用

零冲突

怎么做?

保留 MSYS2 UCRT64

VS Code 从 MSYS2 UCRT64 终端启动:

code .

这样:

VS Code 继承 MSYS2 的 PATH

gcc / g++ = /ucrt64/bin/g++

Rust GNU & C/C++ 完全一致

📌 VS Code C/C++ 插件完全支持这种方式




方案2 vscode c++ 用MinGW ,Rust 只在 MSYS2 里跑,打开MSYS2 UCRT64 终端进入项目目录,运行code . ->vscode终端 cargo build

方案二:MinGW 留在 PATH,Rust 只在 MSYS2 里跑

最常见、最稳妥的折中方案

设置方式

系统 PATH:C:\mingw64\bin ← 保留(给 VS Code / C++)

MSYS2 UCRT64 终端:

自带:

C:\msys64\ucrt64\bin

不使用系统 PATH 的 gcc

规则(一定要守)

🦀 Rust GNU:

只在 MSYS2 UCRT64 终端里 cargo build

🧩 C/C++:

正常 VS Code / PowerShell / CMD

❌ 不要在 PowerShell 里 build Rust GNU

❌ 不要在 MSYS2 里用系统 MinGW








方案三:VS Code 指定编译器路径(进阶)

即使不在 PATH,也能用。

方式 A:CMake

{​ 复制代码
   "CMAKE_C_COMPILER": "C:/mingw64/bin/gcc.exe",
   "CMAKE_CXX_COMPILER": "C:/mingw64/bin/g++.exe"   } } 
   ```

方式 B:tasks.json 
```{   "command": "C:/mingw64/bin/g++.exe" } ```
📌 适合:

多编译器共存

CI / 教学 / 高级用户
方案 4(彻底清理 / 卸载旧 MinGW64 / MINGW)

如果你只保留 MSYS2 UCRT64,PowerShell / CMD / Git Bash 里就不能直接使用其中的 GNU 工具(gcc / g++ / make / cargo 等)

必须在 MSYS2 UCRT64 终端里使用,才能保证正常工作。

只保留 MSYS2 UCRT64时,不管是编译c++还是rust,都需要进入 UCRT64 终端 → cd 到项目 → code . → VS Code打开项目进行编译写代码等


PowerShell / CMD 里调用的 gcc、make、其他系统命令可能行为异常?UCRT64在path里了,为什么会异常?

如果你只保留 MSYS2 UCRT64,PowerShell / CMD / Git Bash 里就不能直接使用其中的 GNU 工具(gcc / g++ / make / cargo 等)

必须在 MSYS2 UCRT64 终端里使用,才能保证正常工作

那为什么vscode可以编译?vscode的终端也是运行gcc取编译。难道是要先MSYS2 UCRT64 终端,进入项目目录,然后code .,然后vscode打开项目目录才能编译,否则vscode直接双击打开项目也是不能编译的?





把 PATH 保留成 UCRT64 的路径让 VS Code 也用可行吗?不可以


为什么有人要把 mingw64 加入系统 PATH?

ucrtmingw64和mingw64的区别



rustup-init.exe 到底是干嘛的?

Rust 工具链安装器 / 管理器(bootstrap 程序)

它的职责是:

下载 Rust(rustc)

下载 Cargo

下载标准库

下载 rustfmt、clippy 等组件

管理多个 toolchain(stable / nightly / gnu / msvc)


Rust 明明"帮下载了 toolchain",为什么仍然需要自己安装Visual Studio Build Tools(MSVC)或 MinGW / MSYS2(GNU)


MSVC vs GNU,MSVC 和 GNU 都不是 Rust,也不是语言,它们是"把代码变成 Windows 程序"的两套工具









从 rustup v1.25.0+ 版本开始,Windows 下无需手动安装 msvc 了,自动下载安装:https://blog.rust-lang.org/2022/07/11/Rustup-1.25.0.html






相关推荐
sycmancia几秒前
C++——强制类型转化、const的理解
开发语言·c++
hzb666661 分钟前
unictf2026
开发语言·javascript·安全·web安全·php
燃于AC之乐2 分钟前
深入解剖STL deque:从源码剖析到容器适配器实现
开发语言·c++·stl·源码剖析·容器实现
kaikaile19953 分钟前
基于MATLAB的滑动轴承弹流润滑仿真程序实现
开发语言·matlab
禹凕5 分钟前
Python编程——进阶知识(MYSQL引导入门)
开发语言·python·mysql
Victor3565 分钟前
MongoDB(2)MongoDB与传统关系型数据库的主要区别是什么?
后端
JaguarJack5 分钟前
PHP 应用遭遇 DDoS 攻击时会发生什么 从入门到进阶的防护指南
后端·php·服务端
BingoGo6 分钟前
PHP 应用遭遇 DDoS 攻击时会发生什么 从入门到进阶的防护指南
后端
Victor3567 分钟前
MongoDB(3)什么是文档(Document)?
后端
傻乐u兔1 小时前
C语言进阶————指针4
c语言·开发语言