rust 在中找到虚拟清单,而< path>不是包清单

kiz8lqtg  于 2023-05-17  发布在  其他
关注(0)|答案(2)|浏览(167)

我在这个网站上搜索了[rust] "instead of a package manifest",没有找到匹配结果。我也读到了虚拟清单here,但没有解决我的问题。
我的目标是对azul进行更改。
为了实现这一点,我在这里阅读了有关修补依赖关系的内容,现在我有了这个Cargo.toml

[package]
name = "my_first_azul_app"
version = "0.1.0"
authors = ["Name <Email>"]
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
azul = { git = "https://github.com/maps4print/azul" }

[patch."https://github.com/maps4print/azul"]
azul = { path = "../azul" }

在路径../azul中,我已经用git clone checkout 了阿苏尔项目。在main.rs中,我已经遵循这个得到,

extern crate azul;

fn main() {
    println!("Hello world!");
}

然后我试着测试

$ cargo run
error: failed to resolve patches for `https://github.com/maps4print/azul`

Caused by:
  failed to load source for a dependency on `azul`

Caused by:
  Unable to update /home/name/projects/azul

Caused by:
  found a virtual manifest at `/home/name/projects/azul/Cargo.toml` instead of a package manifest

我不明白最后造成的线。如果我删除[patch]配置,它就“工作”了。引用,因为它无法编译,但这就是为什么我试图检查出来,并尝试修复。开发azul依赖项需要支付哪些费用?
TIA,

whhtz7ly

whhtz7ly1#

看起来像阿苏尔正在使用工作区,所以如果你想通过路径引用它,你必须指向该工作区的确切成员。
阿苏尔的货物。toml包含

[workspace]
members = [
    "cargo/azul",
    "cargo/azul-css",
    "cargo/azul-core",
    "cargo/azul-layout",
    "cargo/azul-text-layout",
    "cargo/azul-widgets",
    "cargo/azul-css-parser",
    "cargo/azul-native-style",
]

所以我相信你应该能够做到这样的事情:

[dependencies]
azul = { path = "../azul/cargo/azul"
azul-css = { path = "../azul/cargo/azul-css" }

你可能需要所有/一些成员在那里。

yhxst69z

yhxst69z2#

对于那些因为尝试cargo install并得到错误消息而遇到此问题的人:

$ cargo install                            
error: found a virtual manifest at `~/nextclade/Cargo.toml` instead of a package manifest

解决方案很简单,只需添加--path <executable-sub-cratepath>

$ cargo install --path packages_rs/nextclade-cli                         
error: found a virtual manifest at `~/nextclade/Cargo.toml` instead of a package manifest

对于结构如下的工作区:

.
├── Cargo.toml
└── packages_rs
   ├── nextclade
      └── Cargo.toml
   ├── nextclade-cli
      └── Cargo.toml
   └── nextclade-web
      └── Cargo.toml

这在https://github.com/rust-lang/cargo/issues/7599中跟踪

相关问题