43、 Dependencies(依赖)
Dependencies(依赖)
一个Package可以依赖其他Package,通过把那些被依赖的Package放在Cargo.toml文件下的[dependencies]部分。
指定依赖项的最常见的方式是提供其名称和版本:
[dependencies]
thiserror = "1"
上面的配置将会添加thiserror作为依赖项到我们自己的package里面,最低版本为1.0.0,thiserror将从Rust的官方package注册表crates.io中拉取到本地。当我们运行cargo build时,cargo将经历几个阶段:
- 依赖关系解析
- 下载依赖项
- 编译我们的项目(我们自己的代码和依赖项)
如果我们的项目具有Cargo.lock文件并且我们的manifest files没有更改,就会跳过依赖项解析。在成功解决一轮依赖关系后,cargo会自动生成lockfile(锁文件):它包含我们项目中所使用的依赖项的确切版本,并用于在不同的构件中一致地使用相同的版本(例如在CI中)。如果我们团队协同开发一个项目,应该将Cargo.lock文件提交到版本控制系统。
我们可以使用cargo update命令使用所有依赖项的最新(兼容)版本更新Cargo.lock文件。
路径依赖
我们也可以使用路径指定依赖项。当我们处理多个本地Package的时候,这将是很有用的方式。
补充
查看Cargo文档,可以了解从何处获取依赖项,以及如何在Cargo.toml文件中指定依赖项的更多详情。
开发时依赖
我们可以指定仅开发时所需的依赖项——即只有在运行cargo test时才会引入它们。
它们位于Cargo.toml文件中的[dev-dependencies]部分:
[dev-dependencies]
static_assertions = "1.1.0"
练习
这练习还行,挺简单的,让我们修改cargo.toml文件,引入一个叫做anyhow的package。


简单贴两张图好了。
这一节的学习就先到这里了。
阅读剩余
版权声明:
作者:CN059
链接:https://www.cn059.com/2025/09/17/43%e3%80%81-dependencies%ef%bc%88%e4%be%9d%e8%b5%96%ef%bc%89.html
文章版权归作者所有,未经允许请勿转载。
THE END
