文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
9.4 工作空间
包除自己的 Cargo.toml 外,还可通过工作空间(workspace) 共享设置。
$ cd workspace $ cargo new --lib mylib $ cargo new my $ tree . ├── Cargo.toml ├── my │ ├── Cargo.toml │ └── src │ └── main.rs └── mylib ├── Cargo.toml └── src └── lib.rs
# workspace/Cargo.toml [workspace] members = ["mylib", "my"]
测试代码。
// mylib/src/lib.rs pub fn hello() { println!("hello, world!"); }
// my/src/main.rs use mylib; fn main() { mylib::hello(); }
在 my 配置里添加依赖。
# my/Cargo.toml [dependencies] mylib = { path = "../mylib" }
编译,运行!
- 相关命令直接在工作空间目录执行。
- 生成的文件在工作空间 target 目录。
$ cargo clean $ cargo b Compiling mylib v0.1.0 Compiling my v0.1.0 Finished dev [unoptimized + debuginfo] target(s) in 7.22s $ cargo r Finished dev [unoptimized + debuginfo] target(s) in 0.11s Running `target/debug/my` hello, world!
组织结构示意图
+===========+ | workspace | 工程管理(多项目) +===========+ | | +=========+ +----- | package | 项目管理(依赖、构建) | +=========+ | | +-- .. | +=======+ | +------ | crate | 项目(文件组织) | | +=======+ | | +-- .. | +========+ | +----- | module | 模块(代码组织) | | +========+ | +-- .. |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论