文章目录
- 在 Windows 上安装 rustup
- RUSTUP_HOME 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 是什么?
- pacman -S mingw-w64-ucrt-x86_64-gcc 需要把以前安装的mingw 删除吗
- path冲突 不要删除老的mingw的path
- 直接移除老的mingw64 vscode编c++会失败
- 方案1 VS Code C++ 也用 MSYS2 即 打开MSYS2 UCRT64 终端进入项目目录,运行code .-》vscode打开项目-》写代码编译允许
- 方案2 vscode c++ 用MinGW ,Rust 只在 MSYS2 里跑,打开MSYS2 UCRT64 终端进入项目目录,运行code . ->vscode终端 cargo build
- 方案 4(彻底清理 / 卸载旧 MinGW64 / MINGW)
- 把 PATH 保留成 UCRT64 的路径让 VS Code 也用可行吗?不可以
- 为什么有人要把 mingw64 加入系统 PATH?
- ucrtmingw64和mingw64的区别
- rustup-init.exe 到底是干嘛的?
- 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
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)