rust cargo使用详解
刚接触Rust开发,想请教关于Cargo工具的几个问题:
- 如何用Cargo创建新项目?不同项目类型有什么区别?
- Cargo.toml文件中的依赖项应该怎么管理?有哪些常用命令?
- 开发时如何用Cargo运行测试和构建项目?
- 怎样通过Cargo发布crate到crates.io?
- 除了基础功能外,Cargo还有哪些实用的高级特性?
希望能得到详细的使用指导,谢谢!
2 回复
Cargo是Rust的包管理工具,主要功能包括:
cargo new创建新项目cargo build编译项目cargo run编译并运行cargo check检查代码cargo test运行测试cargo doc生成文档
常用命令还有cargo update更新依赖,cargo clean清理编译文件。配置文件是Cargo.toml,管理依赖和项目信息。
Cargo 是 Rust 的官方包管理器和构建工具,用于管理依赖、编译项目、运行测试及发布包。以下是核心用法详解:
1. 创建项目
cargo new my_project # 创建二进制项目
cargo new --lib my_lib # 创建库项目
生成标准目录结构(含 Cargo.toml 和 src/)。
2. 核心命令
-
编译和运行
cargo build # 编译调试版(生成到 target/debug/) cargo build --release # 编译发布版(优化,生成到 target/release/) cargo run # 编译并运行 cargo check # 快速检查编译错误(不生成二进制文件) -
依赖管理
在Cargo.toml的[dependencies]中添加包:serde = "1.0" # 指定版本 tokio = { version = "1.0", features = ["full"] } # 启用特性更新依赖:
cargo update # 更新所有依赖到兼容最新版 -
测试与文档
cargo test # 运行所有测试 cargo doc --open # 生成并打开项目文档
3. 工作空间与特性
- 工作空间:在根目录的
Cargo.toml中定义多个子项目:[workspace] members = ["crate1", "crate2"] - 特性标志:在
Cargo.toml中定义可选功能:[features] default = ["web"] web = ["dep1"] # 依赖按特性条件引入
4. 发布与安装
cargo publish # 发布包到 crates.io
cargo install <crate> # 安装二进制包到全局
5. 常用配置
- 环境变量:
CARGO_HTTP_TIMEOUT设置网络超时。 - 国内镜像:在
~/.cargo/config中添加:[source.crates-io] replace-with = 'ustc' [source.ustc] registry = "https://mirrors.ustc.edu.cn/crates.io-index"
关键文件说明
Cargo.toml:项目元数据和依赖配置。Cargo.lock:锁定依赖版本(二进制项目需提交,库项目通常忽略)。
通过以上命令和配置,可高效管理 Rust 项目的全生命周期。

