入门 The Cargo Team 2026-09-13 15:48:21 · 0 阅读

第7章 Cargo Package 布局规范

Cargo 采用约定的文件布局,让你可以轻松上手一个新的 Cargo package

.
├── Cargo.lock
├── Cargo.toml
├── src/
│   ├── lib.rs
│   ├── main.rs
│   └── bin/
│       ├── named-executable.rs
│       ├── another-executable.rs
│       └── multi-file-executable/
│           ├── main.rs
│           └── some_module.rs
├── benches/
│   ├── large-input.rs
│   └── multi-file-bench/
│       ├── main.rs
│       └── bench_module.rs
├── examples/
│   ├── simple.rs
│   └── multi-file-example/
│       ├── main.rs
│       └── ex_module.rs
└── tests/
    ├── some-integration-tests.rs
    └── multi-file-test/
        ├── main.rs
        └── test_module.rs
  • Cargo.tomlCargo.lock 存放在 package 根目录(即 package root)。
  • 源代码放在 src 目录下。
  • 默认的库文件是 src/lib.rs
  • 默认的可执行文件是 src/main.rs
    • 其他可执行文件可以放在 src/bin/ 下。
  • 基准测试(bench)放在 benches 目录。
  • 示例放在 examples 目录。
  • 集成测试放在 tests 目录。

如果一个二进制、示例、bench 或集成测试由多个源文件组成,可以在 src/binexamplesbenchestests 目录下建一个子目录,把 main.rs 和其他 module 放进去。可执行文件的名称就是这个子目录的名字。

注意: 按照惯例,二进制、示例、bench 和集成测试采用 kebab-case 命名风格,除非有兼容性方面的原因不得不另作选择(比如要与已有的二进制名称保持一致)。这些 target 内部的 module 则遵循 Rust 标准,使用 snake_case 命名。

关于 Rust 的模块系统,你可以在The Book 中了解更多。

如需手动配置目标,请参阅配置目标。如需了解 Cargo 如何自动推断目标名称的机制,请参见目标自动发现

评论 (0)