Rust 中的二进制文件和库有什么区别?

What's the difference between binary and library in Rust?

Rust 中的二进制和库有什么区别? 我看了The Cargo Book,但没看懂。

我使用 cargo new a --bincargo new b --lib 生成了两个文件夹,但是,它们的内部看起来是一样的。 --bin--lib 的目的是什么?它们之间有什么区别?

一个创建 src/main.rs,另一个创建 src/lib.rs。它们在创建的文件的性质上有所不同。区别在于您是对创建库感兴趣还是对创建二进制文件感兴趣 您确定 运行 那些完全相同的命令吗?

(ins)temp->tree
.
├── a
│   ├── Cargo.toml
│   └── src
│       └── main.rs
└── b
    ├── Cargo.toml
    └── src
        └── lib.rs

二进制 crate 应该生成一个(或多个)可执行文件,可以安装在用户的路径中,并且可以像往常一样执行。

另一方面,库 crate 的目的不是创建可执行文件,而是为其他 crate 提供依赖和使用的功能。

它们的结构也确实不同:

✦2 at [22:50:27] ➜ cargo new --bin somebinary
✦2 at [22:50:29] ➜ cargo new --lib somelib
     Created library `somelib` package
✦2 at [22:50:34] ➜ tree somebinary/
somebinary/
├── Cargo.toml
└── src
    └── main.rs
1 directory, 2 files
✦2 at [22:50:41] ➜ tree somelib/
somelib/
├── Cargo.toml
└── src
    └── lib.rs

您还可以在这个 rust-lang 论坛帖子中找到更多信息:https://users.rust-lang.org/t/what-is-the-difference-between-cargo-new-lib-and-cargo-new-bin/19009