繁体   English   中英

如何在铁锈中建造多工作空间货物项目

[英]How to build multi workspace cargo project in rust

我有多工作区货物项目。 它有两个工作区, commonserver 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM