Rust 中的二进制文件和库有什么区别?
What's the difference between binary and library in Rust?
Rust 中的二进制和库有什么区别?
我看了The Cargo Book,但没看懂。
我使用 cargo new a --bin
和 cargo 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
Rust 中的二进制和库有什么区别? 我看了The Cargo Book,但没看懂。
我使用 cargo new a --bin
和 cargo 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