Avatar ·

如何在Cargo中创建一个既包含库又包含可执行文件的包?

大家好!我刚开始学习Rust,正在尝试组织我的项目。我有一些想要复用的逻辑,例如用于处理数字的函数(阶乘、斐波那契数)。我希望这些函数既可以作为库使用(以便在其他项目中通过 `use` 引入),同时又有一个可执行文件(二进制文件),运行后能在控制台中演示这些函数的功能。 我通过 `cargo new my_project` 创建了项目,但它只生成了 `src/main.rs`。我听说可以添加 `src/lib.rs`,但如何正确配置 `Cargo.toml`?是否需要写类似 `[lib]` 或 `[[bin]]` 的内容?以及如果我想使用二进制文件,而库用于其他crate中,该如何运行二进制文件? 以下是我尝试做的示例: ```rust // src/lib.rs pub fn factorial(n: u64) -> u64 { (1..=n).product() } ``` ```rust // src/main.rs mod lib; // 这样可以吗? fn main() {