如何解决"cyclic package dependency"错误?



我已经构建了一个具有以下依赖项的简单应用程序:

[dependencies]
core-foundation = { version = "0.9", features = ["with-chrono"] }

使用cargo 1.62.1 (a748cf5a3 2022-06-08)。我的平台是Macbook Air M1(目标可能很重要,不确定(。

我得到了这个错误:

error: cyclic package dependency: package `chrono v0.4.21` depends on itself. Cycle:
package `chrono v0.4.21`
... which satisfies dependency `chrono = "^0.4"` of package `core-foundation v0.9.3`
... which satisfies dependency `core-foundation = "^0.9"` of package `iana-time-zone v0.1.42`
... which satisfies dependency `iana-time-zone = "^0.1.41"` of package `chrono v0.4.21`

如果我克隆core-foundation并使用cargo build --features="with-chrono"自己构建它,我不会得到任何错误。

知道如何调查这个问题吗?

不幸的是,如果循环依赖关系发生在您无法控制的板条箱中,您就无能为力了。你可以尝试";"修复";通过克隆和修改它来避免有问题的依赖关系,并用固定版本覆盖您的依赖关系。

你最好的办法是通知相关板条箱的维护人员。如果问题是最近才出现的,可以尝试将依赖项锁定到早期版本作为解决方法。


这个特殊的问题似乎已经解决了。当chrono在版本0.4.21中添加iana-time-zone作为依赖项时,可能会发生这种情况。然而,修复方法是iana-time-zone在版本0.1.45中将其依赖关系从core-foundation更改为core-foundation-sys,以打破循环。

最新更新