作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个多工作区 Cargo 项目。它有两个工作区,common
和 server
。 common
是一个lib
项目,server 是一个bin
项目。
项目在Github中的位置是here.
下面是项目结构。
.
├── 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]
。这会配置一个虚拟工作空间——一个仅作为成员包容器的工作空间,但它本身并不构建包。
参见 main Cargo.toml
file of Rocket对于虚拟工作区的真实示例,以及 Tokio一个带有主包的工作区的真实示例。
关于rust - 如何在 Rust 中构建多工作区 cargo 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53133637/
我是一名优秀的程序员,十分优秀!