|
|
1
2
货物确实可以链接某些板条箱的多个版本,但其中只有一个版本可以是直接依赖项。其他都是间接引用。
直接引用总是引用的版本
不幸的是,我不知道有多少记录。 |
|
2
6
这是一个有意识的决定,当设计锈允许同一个板条箱的多个版本。 你可能听说过 Dependency Hell 以前,当2个(或更多)依赖项A和B具有共同的依赖项C,但每个依赖项都需要一个与另一个不兼容的版本时发生。 生锈是为了确保这不会成为一个问题。 一般来说,货物将试图找到一个满足所有要求的通用版本。只要crate作者正确地使用SemVer,并且需求提供了足够的回旋余地,就可以成功地计算和使用单一版本的依赖项。 但是,有时需要同一依赖项的多个版本,例如在您的情况下,因为0.1.x和0.2.x被认为是两个不同的主要版本。在这种情况下,Rust有两个特性允许在同一二进制文件中使用这两个版本:
当然,这是有限制的。如果的函数返回
只要对C的依赖是内部的,或者C的使用是独立的,它就会自动工作。如您的经验所示,它是如此无缝,用户甚至可能没有意识到它正在发生。 一 见 dtolnay trick 板条箱的作者可以使用它来允许某些类型可以互换。 |
|
|
Phoenix · 重构工作区结构会导致外部板条箱导入无法工作 8 年前 |
|
|
tenpn · Cargo未在顶级文件中运行测试 9 年前 |
|
|
Paul C · 当库名称与包名称不同时,如何导入板条箱依赖项? 9 年前 |
|
|
Antimony · 如何用Cargo从项目目录外打包源代码? 9 年前 |
|
|
joeforker · Cargo命令打印目标文件列表? 10 年前 |
|
|
solidsnack · 向Cargo构建添加代码生成标志 10 年前 |