![](/img/trans.png)
[英]rust / cargo workspace: how to specify different profile for different sub project
[英]How to build multi workspace cargo project in rust
我有多工作区货物项目。 它有两个工作区, common
和server
。 common
是一个lib
项目,server是bin
项目。
该项目在Github的位置在这里。
以下是项目结构。
.
├── Cargo.toml
├── common
│ ├── Cargo.toml
│ └── src
│ └── lib.rs
├── README.md
└── server
├── Cargo.toml
└── src
└── main.rs
4 directories, 6 files
而./Cargo.toml文件的文件内容是
[package]
name = "multi_module_cargo_project"
version = "0.1.0"
authors = ["rajkumar"]
[workspace]
members = ["common", "server"]
[dependencies]
当我运行命令cargo build --all
:
error: failed to parse manifest at `/home/rajkumar/Coding/Rust/ProgrammingRust/multi_module_cargo_project/Cargo.toml`
Caused by:
no targets specified in the manifest
either src/lib.rs, src/main.rs, a [lib] section, or [[bin]] section must be present
所以我在Cargo.toml
添加了以下内容,但仍然无法构建项目。
[[bin]]
name = "server/src/main.rs"
我该如何构建项目。 我错过了什么?
您在主Cargo.toml
文件中包含了[package]
部分。 此部分表示除了工作空间中的包之外,还要构建主包。 但是,您没有主程序包的任何源文件,因此Cargo抱怨。
解决方案是简单地省略[package]
部分,并且仅包括[workspace]
。 这会配置一个虚拟工作空间 - 一个仅作为成员包容器的工作空间,但不会自行构建包。
有关虚拟工作空间的真实示例,请参阅Rocket的主要Cargo.toml
文件;有关使用主程序Cargo.toml
工作空间的实际示例,请参阅Tokio 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.