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






相关推荐
踏浪无痕16 小时前
JobFlow 负载感知调度:把任务分给最闲的机器
后端·架构·开源
UrbanJazzerati16 小时前
Python自动化统计工具实战:Python批量分析Salesforce DML操作与错误处理
后端·面试
我爱娃哈哈16 小时前
SpringBoot + Seata + Nacos:分布式事务落地实战,订单-库存一致性全解析
spring boot·分布式·后端
天天进步201516 小时前
【Nanobrowser源码分析4】交互篇: 从指令到动作:模拟点击、滚动与输入的底层实现
开发语言·javascript·ecmascript
nil17 小时前
记录protoc生成代码将optional改成omitepty问题
后端·go·protobuf
console.log('npc')17 小时前
vue2中子组件父组件的修改参数
开发语言·前端·javascript
码点17 小时前
【无标题】日文字库Japan.ini
开发语言
IT=>小脑虎17 小时前
2026版 Python零基础小白学习知识点【基础版详解】
开发语言·python·学习
wjs202417 小时前
抽象工厂模式
开发语言