cargo 是 rust 官方包管理器和构建工具,macos 上通过 cargo.toml 声明依赖、执行 cargo build 等命令自动下载编译;需确保 rustc/cargo 版本正常、path 包含 $home/.cargo/bin、安装 xcode cli 或必要 c 依赖,并配置 ~/.cargo/config.toml 使用 ustc 镜像源加速 crates.io 访问。
cargo 是 rust 官方的包管理器和构建工具,macos 上使用它管理依赖本质上就是通过 cargo.toml 声明依赖、执行命令触发下载与编译。关键不在于“能不能用”,而在于能否稳定、快速、正确地拉取和链接依赖——这取决于环境配置是否到位。
确保 Cargo 和 Rust 工具链已就绪
运行以下命令验证基础环境:
-
rustc --version和cargo --version应正常输出版本号 - 若提示
command not found,说明$HOME/.cargo/bin未加入PATH;执行source "$HOME/.cargo/env"(适用于 zsh/bash)临时生效,或将其写入~/.zshrc持久生效 - 检查是否安装了系统级构建依赖:Rust 很多 crate(如
openssl、libgit2)需调用 C 库,建议运行xcode-select --install或brew install cmake pkg-config openssl@3
配置国内镜像加速依赖下载
默认从 crates.io 下载常因网络延迟失败或超时。推荐将镜像源切换为中科大(USTC)或清华源:
- 编辑或创建
~/.cargo/config.toml(注意是.toml后缀,旧教程中的config无后缀已不推荐) - 填入以下内容(USTC 镜像):
[source.crates-io] replace-with = "ustc" [source.ustc] registry = "https://mirrors.ustc.edu.cn/crates.io-index"
保存后,后续所有 cargo build、cargo add 或 cargo update 都会自动走镜像源,大幅缩短依赖拉取时间。
在项目中声明并安装依赖
依赖管理围绕 Cargo.toml 展开,无需手动下载或解压:
- 新建项目:执行
cargo new myapp,自动生成标准结构及Cargo.toml - 添加依赖:直接编辑
Cargo.toml的[dependencies]区块,例如:
[dependencies]
reqwest = { version = "0.12", features = ["json"] }
serde = { version = "1.0", features = ["derive"] }
- 或使用命令行快捷添加:
cargo add reqwest serde(需先cargo install cargo-add) - 执行
cargo build即自动解析语义化版本、下载源码、编译并缓存到target/目录;首次构建较慢,后续增量编译很快
处理多版本与本地依赖场景
实际开发中常遇到版本冲突或引用本地 crate:
- 指定精确版本:用
= "1.2.3"锁定,避免^或~引发意外升级 - 引用本地路径依赖:在
Cargo.toml中写my-utils = { path = "../my-utils" },适合模块拆分开发 - 跨 nightly 工具链(如 Remacs):项目根目录若有
rust-toolchain文件,cargo会自动切换对应 Rust 版本,无需手动rustup override











