繁体   English   中英

为什么 Rust 同时需要包和工作区?

[英]Why does Rust need both packages and workspaces?

我对 Rust 模块层次结构中三个上层的存在以及为什么都需要它们感到有点困惑。 如果我理解正确的话:

  • Crates 是包含多个模块的简单项目,每个 crate 要么是一个库,要么是一个二进制文件。
  • 包包含一个或多个板条箱,最多包含一个库。
  • 工作区是一组包。

我理解如果一起开发多个板条箱需要将它们放在一起,所以包或工作区对我来说都有意义,但我不明白为什么两者都需要存在以及为什么需要最多 1 个库限制在包裹上。 这样做的好处是什么?

我读过为什么 Cargo package 只能有一个库目标? 这给出了每个 package 规则的 1 个库箱的解释,但这让我更加困惑,因为你仍然可以拥有带有二进制文件的包,甚至“更糟”没有库。 如果包是 Cargo 的抽象,package 经理,为什么要允许二进制文件在其中呢? 为什么允许内部没有单个库的包? 您可以将无库包作为依赖项导入吗?

我刚刚开始使用 Rust,但正如我所见,带有库和二进制文件的 package 基本上就是带有工具(二进制文件)的 function 特定库,特定于该库的工具。

示例 - 游戏的 3D 库

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM