为什么`cargo new`创建二进制而不是库?

时间:2018-04-07 10:38:19

标签: rust rust-cargo

我正在用Rust创建一个库。在库创建时我输入

cargo new name

根据文档,这应该创建一个lib,因为省略了--bin。 但是,该文件自动设置为二进制文件。

我是否需要调整设置以禁用将所有项目自动设置为二进制文件?

2 个答案:

答案 0 :(得分:9)

  

货物特征

     

Cargo的CLI在此版本中有一个非常重要的变化:cargo new现在默认生成二进制文件,而不是库。我们试图让Cargo的CLI保持稳定,但这种变化很重要,不太可能导致破损。

     

对于某些背景,cargo new接受两个标志:--lib用于创建库,--bin用于创建二进制文件或可执行文件。如果您未传递其中一个标志,则在之前版本的Cargo中,它将默认为--lib。我们做出这个决定是因为每个二进制文件(通常)都依赖于许多库,因此库案例更常见。但是,这是不正确的;每个图书馆都依赖于许多二进制文件。此外,在开始使用时,您经常需要的是一个可以运行和使用的程序。不过,这不仅仅是新的Rustaceans;甚至很长时间的社区成员都说他们发现这个默认值令人惊讶。因此,我们正在改变它。

Source

答案 1 :(得分:3)

自货运1.25 cargo new defaults to creating a binary crate, instead of a library crate以来。

  

cargo new接受两个标志: - lib,用于创建库, - bin,用于创建二进制文件或可执行文件。

请参阅Changelog for 1.25