【问题标题】:How to better understand Crate in Rust?如何更好地理解 Rust 中的 Crate?
【发布时间】:2023-03-19 02:23:01
【问题描述】:

在本书中-Rust By Example,第 11 章:

crate 是 Rust 中的一个编译单元。每当调用 rustc some_file.rs 时,some_file.rs 被视为 crate 文件

根据这本书,源文件呢?

The Rust Reference | Crates and source files

编译模型以称为 crates 的工件为中心。每次编译都处理一个源代码形式的 crate,如果成功,则生成一个二进制形式的单个 crate:可执行文件或某种库。

Rust 编译器始终使用单个源文件作为输入来调用,并且始终生成单个输出包。该源文件的处理可能会导致其他源文件被加载为模块。源文件的扩展名为 .rs。

根据这个说法,我认为:

源文件(.rs 文件) --> 对应的 crate

就像:.java --> .class

现在我无法理解这个问题;我都在海上。

【问题讨论】:

标签: rust crate


【解决方案1】:

这是您引用的材料的关键部分:

对该源文件的处理可能会导致其他源文件作为模块加载。

如果你检查一个典型的库,你会发现一个名为src/lib.rs 的文件包含几行,如mod foo;。其中的每一个都标识了另一个文件src/foo.rs,编译器会将其解释为构成 crate 一部分的另一个模块(或者它可以直接在同一个文件中包含该模块)。

并不是一个源文件组成一个 crate:而是 从那个源文件开始,您可以找到组成 crate 的所有文件, 与其他编译模型相反,编译器可能会被赋予许多文件名来开始。

【讨论】:

  • 谢谢你的回答,我想我明白了
猜你喜欢
  • 1970-01-01
  • 2016-04-09
  • 2018-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多