rust 项目的文件结构

打印 上一主题 下一主题

主题 1865|帖子 1865|积分 5595

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
发文原因

很多初学者都使用 cargo new [project_name] 来创建项目,并直接在 main.rs 文件中实现所有功能。
这样是不合理的,并不符合我们 cargo 的开发规范。
下面将简单的介绍一下 rust project 中的文件结构。
cargo new [project_name ] --[bin/lib] 命令可以在项目名称后指定一个参数,来告诉cargo我们创建的是什么类型的项目,bin 代表二进制项目,也就是我们常说的可执行文件。 lib 代表库项目,无法直接执行。 默认参数为 bin。
cargo new [project_name] --bin  创建的默认结构
  1. ·
  2. ├── Cargo.lock
  3. ├── Cargo.toml
  4. ├── src/
  5. │   ├── main.rs
  6. ├── target/
复制代码

  • ·
    根目录
  • Cargo.lock 文件
    由 cargo 维护的项目相关依赖的具体信息,不需要我们手动编辑。
  • Cargo.toml 文件
    由我们编辑的项目名称、项目版本、项目作者等。以及项目所需相关依赖。
  • src/ 文件夹
    存放我们的源代码
  • src/main.rs
    程序入口
  • target/文件夹
    用来存放 debug/ release 时的文件,通常不需要我们手动编辑。
下面只说上面没说过的文件/文件夹
cargo new [project-name] --lib 创建的默认结构
  1. ·
  2. ├── Cargo.lock
  3. ├── Cargo.toml
  4. ├── src/
  5. │   ├── lib.rs
  6. ├── target/
复制代码

  • lib.rs
    库的默认输出口
下面是相对来说比较完整的目录
  1. ·
  2. ├── Cargo.lock
  3. ├── Cargo.toml
  4. ├── src/
  5. │   ├── main.rs
  6. │   └── another_mod/
  7. │       ├── A.rs
  8. │       ├── b.rs
  9. │       └── mod.rs
  10. ├── benches/
  11. │   ├── large-input.rs
  12. │   └── multi-file-bench/
  13. │       ├── main.rs
  14. │       └── bench_module.rs
  15. ├── examples/
  16. │   ├── simple.rs
  17. │   └── multi-file-example/
  18. │       ├── main.rs
  19. │       └── ex_module.rs
  20. └── tests/
  21.     ├── some-integration-tests.rs
  22.     └── multi-file-test/
  23.         ├── main.rs
  24.         └── test_module.rs
复制代码

  • src/another_mod
    为我们自定义模块创建的文件夹。
  • src/another_mod/A.rs
    我们自定义模块中的的A mod。
  • src/another_mod/B.rs
    我们自定义模块中的B mod。
  • src/another_mod/mod.rs
    我们自定义模块的 默认导出,任何一个自定义mod 文件夹都应该包含一个 mod.rs文件。
  • benches
    基准测试文件夹,用来进行性能测试。
  • examples
    示例文件夹,用来存放crate的调用示例代码。
  • tests
    集成测试文件夹,mod 之间的嵌套测试。
Rust官网
Rust 中文社区

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

美食家大橙子

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表