“清单路径是虚拟清单,但是此命令需要针对实际软件包运行”是什么意思?

Ama*_*ani 6 rust rust-cargo

我正在尝试建立一个Rust项目(X射线)。运行时,cargo run我收到以下错误消息

error: manifest path `D:\xray\building\xray\Cargo.toml` is a virtual manifest, but this command requires running against an actual package in this workspace
Run Code Online (Sandbox Code Playgroud)

这到底是什么意思,如何解决?我正在使用Cargo版本0.25.0和Rust版本1.24.1。

Tim*_*ann 8

Cargo.toml是一个虚拟的清单

在工作空间清单中,如果存在package表,则工作空间的根箱将被视为普通包以及工作空间。如果该package表不存在于工作空间清单中,则称为虚拟清单

使用虚拟舱单时,与包装相关的货运命令(例如cargo build)将不再可用。但是,大多数此类命令都支持该--all选项,将对工作空间中的所有非虚拟清单执行命令。

cargo run不起作用,因为货物不知道要运行什么。有两种选择:

  1. --manifest-path <PATH>Cargo.toml要运行的板条箱的路径。
  2. -p, --package <SPEC>:您要运行的软件包。

在您的情况下,可能是 cargo run --package xray_cli