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






相关推荐
一起养小猫1 小时前
Flutter for OpenHarmony 实战:打造天气预报应用
开发语言·网络·jvm·数据库·flutter·harmonyos
xyq20241 小时前
Java 抽象类
开发语言
爱装代码的小瓶子1 小时前
【c++与Linux基础】文件篇(4)虚拟文件系统VFS
linux·开发语言·c++
疯狂的喵6 小时前
C++编译期多态实现
开发语言·c++·算法
2301_765703146 小时前
C++中的协程编程
开发语言·c++·算法
m0_748708056 小时前
实时数据压缩库
开发语言·c++·算法
lly2024067 小时前
jQuery Mobile 表格
开发语言
惊讶的猫7 小时前
探究StringBuilder和StringBuffer的线程安全问题
java·开发语言
m0_748233178 小时前
30秒掌握C++核心精髓
开发语言·c++
Fleshy数模8 小时前
从数据获取到突破限制:Python爬虫进阶实战全攻略
java·开发语言