引用外部库

声明一个外部库的依赖, 可以有以下几种形式.

最简单的是使用 crates.io 库里的 crates, 至少指定名称及版本号:

[dependencies]
rand = "3.1"

可以使用 cargo add rand 命令, 把 rand 库加入到 Cargo.toml; 也可以使用文本编辑器手动输入这些内容.

或者一个自定义的 git 仓库:

[dependencies]
rand = { git = "https://github.com/rust-lang/rand", branch="master" }

可以指定 git 仓库的分支名, 版本号, 以及 commit id 等, 可用于定位特定的提交.

也可以是本地的一个路径, 比如将一个大仓库拆成几个小库, 都还放在同一个根目录里:

[dependencies]
hello_utils = { path = "hello_utils" }

build.rs 可以使用 [build-dependencies] 里定义的依赖. examples, tests 以及 benches 可以 使用 [dev-dependencies] 以及 [dependencies] 里定义的依赖. src 目录里的代码, 只能使用 [dependencies] 里定义的依赖.

更新依赖包

手动更新依赖包到新版本:

$ cargo update  # 更新所有依赖包
$ cargo update -p rand  # 只更新 rand 包

这里, 只会更新 Cargo.lock, 根据 Cargo.toml 中定义的依赖包的版本, 而不会触动 Cargo.toml 本身. 如果需要更新 Cargo.toml 依赖里的版本, 要么手动去修改, 要么 使用 cargo-upgrade 这个扩展, 自动将它们更新到最新版.

$ cargo upgrade