为什么Rust既需要包又需要工作区?

时间:2020-05-27 20:04:58

标签: rust rust-cargo

Rust模块层次结构中存在三个较高的级别,以及为什么都需要它们,这让我有些困惑。如果我正确理解:

  • 板条箱是包含多个模块的简单项目,每个板条箱都是库或二进制文件。
  • 包裹包含一个或多个箱子,最多包含一个库。
  • 工作区是一组程序包。

我知道如果将多个板条箱一起开发,则必须将它们包装在一起,所以包或工作区对我来说都是有意义的,但我不明白为什么两个板条箱都必须存在并且为什么需要最大数量1软件包的库限制。这样做的好处是什么?

我已经读过Why can a Cargo package only have one library target?,该书对每个程序包规则1个库箱给出了解释,但是这让我更加困惑,因为您仍然可以使用带有二进制文件的程序包,甚至没有库就“更糟”。如果软件包是软件包管理器Cargo的抽象,为什么还要在其中允许二进制文件?为什么允许包中没有单个库?可以将无库软件包作为依赖项导入吗?

1 个答案:

答案 0 :(得分:0)

我才刚刚开始使用 Rust,但在我看来,一个带有库和二进制文件的包基本上就是一个带有工具(二进制文件)的函数特定库,特定于该库的工具.

示例 - 游戏的 3D 库

图书馆的用户将能够使用这些工具来创建内容,而无需将工具传递给最终用户。

相关问题