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

sea*_*mus 7 rust rust-cargo

我正在用Rust创建一个库.关于库创建我输入

cargo new name
Run Code Online (Sandbox Code Playgroud)

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

是否有一个设置我必须调整以禁用自动将所有项目设置为二进制?

Sta*_*eur 12

货物功能

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

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

资源

  • 哎呀——每个发现这一点令人惊讶并必须学习 Rust 方式的人现在都必须忘记这一点——从那时起编写的每一篇文档现在都是错误的,我的 Kindle 电子书“Programming Rust”都是错误的,所有印刷版也是错误的它的。哇。Rust 不再是婴儿语言,它拥有真正的用户。在这个阶段,这似乎是一个非常奇怪的改变。 (2认同)

Tim*_*ann 6

由于 Cargo 1.25cargo new 默认创建二进制 crate,而不是库 crate

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

请参阅1.25 的变更日志