【问题标题】:What exactly is a Rust "toolchain"?Rust“工具链”到底是什么?
【发布时间】:2020-10-06 14:04:52
【问题描述】:

我看到 rustup 被称为“工具链安装程序”,但很难找到 Rust 认为“工具链”的确切定义以及该概念的范围。

我已经安装了 Rust 编译器和 Cargo。 rustup 还带来了什么?它只是一个 Rust 版本切换器吗?


作为一个 .NET 开发人员,也许有一个相似之处让我更容易掌握这个概念?

【问题讨论】:

  • rustup README.md on Github中给出了一个简洁的定义:_"很多rustup命令处理工具链,一个Rust编译器的安装。rustup支持多种类型的工具链。最基本的跟踪官方发布频道:stable、beta 和 nightly;但 rustup 还可以从官方存档、备用主机平台和本地构建安装工具链。"_我不知道是否存在确切的定义,在 software toolchain 的通用概念后面
  • 你可以运行rustup toolchain list,在我的例子中打印stable-x86_64-unknown-linux-gnu (default)。所以你可以把工具链看成是特定版本的编译器、标准库和附带的工具如clippy、cargo等

标签: rust toolchain rustup


【解决方案1】:

工具链是编译 Rust 应用程序所需的程序集合的特定版本。包括但不限于:

  • 编译器,rustc
  • 依赖管理器和构建工具,cargo
  • 文档生成器,rustdoc
  • 构成默认平台标准库的静态和/或动态库

还有额外的组件可以安装,比如

  • 文档
    • Rust 编程语言
    • 标准库
    • 各种书籍和参考资料
  • 静态和/或动态库构成标准库,供其他平台交叉编译
  • 标准库的源代码
  • 额外的实用程序
    • 通过rustfmt 格式化代码
    • 通过clippy 额外的棉绒
    • 通过miri 进行未定义的行为检查
    • 通过 rust-analyzer 或 Rust 语言服务器支持高级编辑器

Rustup 提供了安装、删除、更新、选择和以其他方式管理这些工具链及其相关部分的方法。

另见:

【讨论】:

  • 链接器也是工具链的一部分。这足以包含在列表中。
  • @IInspectable 你能告诉我 rustup 为哪些平台安装链接器吗?我的理解是 Rust 依赖于系统链接器(这就是为什么你还必须安装 C 工具链)。
  • 这也是我的理解,但@linspectable 的观点很好理解,即使它只是为了解释这是 rustup 无法处理的一部分。尤其是当你交叉编译时它会变得混乱。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-30
  • 2018-10-22
  • 2017-07-07
  • 2012-10-26
  • 1970-01-01
  • 2018-11-11
相关资源
最近更新 更多