< 返回版块

hzqd 发表于 2021-03-24 03:10

第一个问题: 有一个crate A,依赖于crate B,但项目同时依赖于crate A 和 crate B 的另一个版本;Rust 是如何解决该依赖问题的?

第二个问题: 有 crates A, B, C, D, E,它们各自都依赖于 crate Z 的不同版本;此时我在项目中添加这五个依赖,Rust 是如何解决该依赖问题的?

第三个问题: crate A 依赖于 crate B,crate B 依赖于 crate A(编译A需要先编译B,编译B需要先编译A),Rust 是如何解决该依赖问题的?

评论区

写评论
RedPanda 2021-03-24 11:06

第三个问题的话A和B肯定还是要互相依赖不同版本的。

c5soft 2021-03-24 08:39

第一与第二两个问题可以合并,视为一个问题,在一个crate(lib与exe都叫crate)中,Rust依赖其他名称相同版本不同的crate可以并存,rust将它们看作不同的crate,一同连接到最终的执行文件中。这点可以通过cargo tree查看。 第三个问题,递归依赖,无法编译。一个crate不能直接或间接依赖自己。

1 共 2 条评论, 1 页