【发布时间】:2018-03-24 00:01:26
【问题描述】:
我正在尝试构建一个 Rust 项目 (xray)。运行 cargo run 时,我收到以下错误消息
错误:清单路径
D:\xray\building\xray\Cargo.toml是虚拟的 清单,但此命令需要针对实际包运行 在这个工作区
这究竟是什么意思,如何解决?我正在使用 Cargo 版本 0.25.0 和 Rust 版本 1.24.1。
【问题讨论】:
标签: rust rust-cargo
我正在尝试构建一个 Rust 项目 (xray)。运行 cargo run 时,我收到以下错误消息
错误:清单路径
D:\xray\building\xray\Cargo.toml是虚拟的 清单,但此命令需要针对实际包运行 在这个工作区
这究竟是什么意思,如何解决?我正在使用 Cargo 版本 0.25.0 和 Rust 版本 1.24.1。
【问题讨论】:
标签: rust rust-cargo
您的Cargo.toml 是virtual manifest。
在工作区清单中,如果存在
package表,则工作区根 crate 将被视为普通包以及工作区。如果package表不存在于工作区清单中,则称为虚拟清单。使用 虚拟清单 时,与包相关的货物命令(如
cargo build)将不再可用。但是,大多数此类命令都支持--all选项,将对工作区中的所有非虚拟清单执行该命令。
cargo run 不起作用,因为 cargo 不知道 要运行什么。有两种选择:
--manifest-path <PATH>:您要运行的 crate 的 Cargo.toml 的路径。-p, --package <SPEC>:你要运行的包。你的情况可能是cargo run --package xray_cli
【讨论】:
清单包含包和工作区部分无法正常工作。请检查 Cargo.toml 并从中删除包。
Virtual Manifest 是新概念,请阅读文档以熟悉它。希望它对你有价值。
【讨论】: