根据其手册, Cargo包可以有多个可执行目标,但只允许一个库目标。
一个包可以包含零个或一个库crate和任意数量的二进制crate。包中必须至少有一个crate(库或二进制)。
为什么限制为一个?这样做的原因和好处是什么?
根据其手册, Cargo包可以有多个可执行目标,但只允许一个库目标。
一个包可以包含零个或一个库crate和任意数量的二进制crate。包中必须至少有一个crate(库或二进制)。
为什么限制为一个?这样做的原因和好处是什么?
rlib
crates 来说,这是有意义的,它们是用于组合的 Rust 模块。但为什么不允许生成多个 cdylib
呢?就像允许生成多个 bin
一样。它们与 bin
的入口语义相同,唯一的区别是它们直接被应用程序使用,而不是通过 HTTP、UI 或 CLI。 - kkolyan我认为一个货物包只能有一个库目标,因为库箱
根据定义是一组项目(函数、类型、特性、宏、值等),而二进制箱
只有一个外部可见的东西,即主入口点。因此,虽然库箱的名称仅是层次结构中的根模块,但二进制箱的名称是唯一的。