如何修复 Cargo 文件中不匹配的依赖项以解决本机库冲突



我正在用 Rocket 设置一个 Rust 服务器,我正在尝试将其与 JWT 库一起使用。他们使用不同版本的*环*板条箱,我在cargo build期间收到错误:

error: multiple packages link to native library `ring-asm`, but a native library can be linked only once
package `ring v0.12.1`
    ... which is depended on by `jsonwebtoken v4.0.1`
    ... which is depended on by `auther v0.1.0 (file:///home/drpytho/x/downloadble/auther)`
links to native library `ring-asm`
package `ring v0.11.0`
    ... which is depended on by `cookie v0.9.2`
    ... which is depended on by `rocket v0.3.6`
    ... which is depended on by `rocket_codegen v0.3.6`
    ... which is depended on by `auther v0.1.0 (file:///home/drpytho/x/downloadble/auther)`
also links to native library `ring-asm`

我的货物

[package]
name = "auther"
version = "0.1.0"
authors = ["Name <Email@mail.se>"]
[dependencies]
rocket = "0.3.6"
rocket_codegen = "0.3.6"
jsonwebtoken = "4"
serde_derive = "1"
serde = "1"

我读到您应该修复 Cargo 文件中不匹配的依赖项,但我不知道该怎么做。

您必须通过

不传递依赖于链接到本机库的不同版本的 crate 来解决此问题。

没有更新的rocket版本依赖于cookie的版本0.10,这取决于ring 0.12,所以你需要jsonwebtoken降级到2.0.3

您可以通过检查有问题的 crate 的 crates.io 页面(如 jsonwebtoken (、回顾旧版本并查看它需要哪些依赖项来解决这个问题。

相关内容

最新更新