gpt4 book ai didi

rust - 如何在 Rust 中构建多工作区 cargo 项目

转载 作者:行者123 更新时间:2023-11-29 08:13:50 25 4
gpt4 key购买 nike

我有一个多工作区 Cargo 项目。它有两个工作区,commonservercommon 是一个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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com