rust cargo使用详解

刚接触Rust开发,想请教关于Cargo工具的几个问题:

  1. 如何用Cargo创建新项目?不同项目类型有什么区别?
  2. Cargo.toml文件中的依赖项应该怎么管理?有哪些常用命令?
  3. 开发时如何用Cargo运行测试和构建项目?
  4. 怎样通过Cargo发布crate到crates.io
  5. 除了基础功能外,Cargo还有哪些实用的高级特性?

希望能得到详细的使用指导,谢谢!

2 回复

Cargo是Rust的包管理工具,主要功能包括:

  1. cargo new 创建新项目
  2. cargo build 编译项目
  3. cargo run 编译并运行
  4. cargo check 检查代码
  5. cargo test 运行测试
  6. cargo doc 生成文档

常用命令还有cargo update更新依赖,cargo clean清理编译文件。配置文件是Cargo.toml,管理依赖和项目信息。


Cargo 是 Rust 的官方包管理器和构建工具,用于管理依赖、编译项目、运行测试及发布包。以下是核心用法详解:


1. 创建项目

cargo new my_project     # 创建二进制项目
cargo new --lib my_lib   # 创建库项目

生成标准目录结构(含 Cargo.tomlsrc/)。


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 项目的全生命周期。

回到顶部