Xz's blog Xz's blog
首页
时间序列
多模态
合成生物学
其他方向
生活
工具相关
PyTorch
导航站

Xu Zhen

首页
时间序列
多模态
合成生物学
其他方向
生活
工具相关
PyTorch
导航站
  • Rust

    • Rust 工具链
      • Cargo
      • 变量
      • 函数和控制流
      • 所有权
      • 引用与借用
      • Slice切片
      • 属性 Attribute
      • 闭包
      • Trait—关联类型(Associated Types)
      • 关联类型与泛型
      • 多线程 mpsc::channel
      • Rust 调用 C++ 之静态链接
      • Rust 调用 C++ 之动态链接
      • Rust与C++之间传递数据
    • Rust-Windows 窗口自动化

    • Tauri

    • C++

    • Claude Code

    • Liunx相关

    • Windows相关

    • IDE

    • Conda

    • Docker

    • VMware虚拟机

    • Python常用代码片段

    • 工具相关
    • Rust
    xuzhen
    2025-08-25
    目录

    Rust 工具链

    在 Rust 中,工具链(toolchain)指的是编译器 rustc、构建系统 cargo、标准库以及其他相关工具的集合。通过官方的工具链管理器 rustup,你可以轻松地安装、管理和切换不同版本和类型的 Rust 工具链。

    以下是切换 Rust 工具链的几种主要方法,涵盖了从全局默认设置到项目特定配置的各种场景。

    # 1. 查看已安装和当前活动的工具链

    在进行切换之前,了解当前环境的状态非常有用。

    查看已安装的工具链列表:

    rustup toolchain list
    
    1

    这个命令会列出所有已安装的工具链,并在当前的默认工具链旁边标注 (default)。输出

    stable-x86_64-pc-windows-gnu 
    stable-x86_64-pc-windows-msvc (active, default)
    
    1
    2

    可以看到当前默认的工具链是 MSVC 工具链,执行指令:rustup default stable-gnu,将当前的默认工具链修改为 GNU (没有安装 GNU 工具链也可以通过这条指令来安装)。

    显示当前活动的工具链:

    rustup show
    
    1

    此命令会显示当前目录活动的工具链。如果当前目录有特定的覆盖设置,这里会显示覆盖的工具链,否则会显示全局默认的工具链。

    # 2. 安装新的工具链

    在切换之前,你需要确保目标工具链已经被安装。rustup 支持多种工具链,主要包括:

    • 稳定版 (stable): 最新的稳定发行版。
    • 测试版 (beta): 下一个稳定版的预览。
    • 每日构建版 (nightly): 包含最新功能和实验性特性的每日构建版本。
    • 特定版本号: 如 1.65.0。

    安装最新的稳定版、测试版或每日构建版:

    rustup toolchain install stable
    rustup toolchain install beta
    rustup toolchain install nightly
    
    1
    2
    3

    安装特定版本的工具链:

    rustup toolchain install <version>
    # 例如:
    rustup toolchain install 1.65.0
    
    1
    2
    3

    你也可以指定目标平台:

    rustup toolchain install stable-x86_64-unknown-linux-musl
    
    1

    # 3. 设置全局默认工具链

    这是最常用的切换方式,它会改变系统中所有未使用特定覆盖规则的项目的默认编译器。

    使用 rustup default 命令来设置全局默认工具链:

    rustup default <toolchain>
    
    1

    示例:

    • 切换到 nightly 版本:

      rustup default nightly
      
      1
    • 切换回 stable 版本:

      rustup default stable
      
      1
    • 切换到特定的历史版本:

      rustup default 1.65.0
      
      1

    设置成功后,再次运行 rustup toolchain list 或 rustup show,你会看到 (default) 标记已经移动到了新指定的工具链上。

    # 4. 针对特定项目切换工具链(推荐的项目级配置)

    在很多情况下,你可能希望为某个特定的项目指定一个工具链版本,而不是修改全局设置。这样做可以确保团队中的所有成员都使用相同的工具链版本来编译项目,从而保证可复现的构建。

    这有两种主要方法:

    # a) 使用 rust-toolchain 文件

    这是最推荐的为项目指定工具链版本的方法。

    1. 在你的项目根目录下,创建一个名为 rust-toolchain 的文件。
    2. 在该文件中,写入你想要使用的工具链名称。

    示例:

    文件内容可以是:

    nightly
    
    1

    或者一个特定的版本:

    1.65.0
    
    1

    或者更详细的指定:

    nightly-2022-11-20
    
    1

    当你在此目录下(或其任何子目录中)运行 cargo 或 rustc 命令时,rustup 会自动检测并使用 rust-toolchain 文件中指定的工具链。如果该工具链尚未安装,rustup 会自动为你下载并安装它。

    # b) 使用 rustup override 命令

    你也可以使用 override 命令为当前目录设置一个工具链。

    rustup override set <toolchain>
    
    1

    示例:

    进入你的项目目录,然后运行:

    cd /path/to/my/project
    rustup override set nightly
    
    1
    2

    这会在 rustup 的配置中记录下这个目录应该使用 nightly 工具链。当你离开这个目录后,将恢复使用全局默认的工具链。

    查看和取消目录覆盖:

    • 查看所有已设置的覆盖:rustup override list
    • 取消当前目录的覆盖:rustup override unset

    rust-toolchain 文件与 rustup override 的区别:

    • rust-toolchain 文件可以被提交到版本控制系统(如 Git)中,方便团队协作。
    • rustup override 是本地配置,不会影响其他开发者。

    通常情况下,优先推荐使用 rust-toolchain 文件。

    # 5. 临时单次命令切换

    如果你只是想用某个特定的工具链临时运行一次命令(例如,测试代码在 nightly 版本下的表现),可以在命令前加上 +<toolchain>。

    cargo +<toolchain> [command]
    
    1

    示例:

    • 使用 nightly 工具链来运行测试:

      cargo +nightly test
      
      1
    • 使用 beta 工具链来构建项目:

      cargo +beta build
      
      1
    • 使用特定版本来检查代码:

      cargo +1.65.0 check
      
      1

    这种方式不会改变任何默认设置或目录覆盖,非常适合临时性的测试和实验。

    # 总结

    方法 命令/文件 作用范围 适用场景
    设置全局默认 rustup default <toolchain> 全局 改变系统主要的开发环境。
    项目级配置 (推荐) rust-toolchain 文件 项目目录及其子目录 保证项目构建环境的一致性,方便团队协作。
    目录级覆盖 rustup override set <toolchain> 特定目录及其子目录 在本地为某个项目指定版本,不影响他人。
    临时单次执行 cargo +<toolchain> [command] 单条命令 临时使用不同版本的工具链进行测试或构建。

    通过灵活运用这些 rustup 提供的功能,你可以轻松地在不同的 Rust 工具链之间切换,以满足不同项目的开发需求。

    #Rust
    上次更新: 2025/08/25, 15:57:17

    Cargo→

    最近更新
    01
    Linux 通过Windows代理上网
    09-18
    02
    vscode远程使用copilot和codex(内网环境)
    09-18
    03
    跨机器克隆环境
    09-18
    更多文章>
    Theme by Vdoing | Copyright © 2025-2025 Xu Zhen | 鲁ICP备2025169719号
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式