rust 项目的文件结构
发文原因
很多初学者都使用 cargo new [project_name] 来创建项目,并直接在 main.rs 文件中实现所有功能。
这样是不合理的,并不符合我们 cargo 的开发规范。
下面将简单的介绍一下 rust project 中的文件结构。
cargo new [project_name ] --[bin/lib] 命令可以在项目名称后指定一个参数,来告诉cargo我们创建的是什么类型的项目,bin 代表二进制项目,也就是我们常说的可执行文件。 lib 代表库项目,无法直接执行。 默认参数为 bin。
cargo new [project_name] --bin 创建的默认结构
· ├── Cargo.lock ├── Cargo.toml ├── src/ │ ├── main.rs ├── target/
- ·
根目录 - Cargo.lock 文件
由 cargo 维护的项目相关依赖的具体信息,不需要我们手动编辑。 - Cargo.toml 文件
由我们编辑的项目名称、项目版本、项目作者等。以及项目所需相关依赖。 - src/ 文件夹
存放我们的源代码 - src/main.rs
程序入口 - target/文件夹
用来存放 debug/ release 时的文件,通常不需要我们手动编辑。
下面只说上面没说过的文件/文件夹
cargo new [project-name] --lib 创建的默认结构
· ├── Cargo.lock ├── Cargo.toml ├── src/ │ ├── lib.rs ├── target/
- lib.rs
库的默认输出口
下面是相对来说比较完整的目录
· ├── Cargo.lock ├── Cargo.toml ├── src/ │ ├── main.rs │ └── another_mod/ │ ├── A.rs │ ├── b.rs │ └── mod.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
- 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 之间的嵌套测试。
本文来自博客园,作者:贤云曳贺,转载请注明原文链接:https://www.cnblogs.com/SantiagoZhang/p/17266120.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战