Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rust入门系列:02、Cargo: Rust 的包管理和构建系统 #59

Open
MagicalBridge opened this issue Jun 20, 2024 · 0 comments
Open

Comments

@MagicalBridge
Copy link
Owner

基本概念

Cargo 是 Rust 的包管理器和构建系统,它简化了 Rust 项目的创建、构建、测试和发布过程。无论是管理项目依赖、构建项目、运行测试还是发布库和应用程序,Cargo 都提供了便捷的工具和命令。本文将详细介绍 Cargo 的功能,并通过代码示例展示如何使用它来管理和构建 Rust 项目。

1. 什么是 Cargo?

Cargo 是 Rust 的包管理器和构建系统。它负责管理项目依赖、编译项目、生成可执行文件和库,并且可以帮助你发布库到 crates.io(Rust 的包注册表)。Cargo 的主要功能包括:

  • 项目创建:快速生成项目模板。
  • 依赖管理:处理项目的外部依赖。
  • 构建和运行:编译项目并生成可执行文件或库。
  • 测试:运行项目的测试用例。
  • 发布:将库发布到 crates.io。

2. 安装 Cargo

Cargo 与 Rust 一起安装。你可以通过以下命令安装 Rust 和 Cargo:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

安装完成后,可以使用以下命令验证 Cargo 是否成功安装:

cargo --version

3. 创建新项目

使用 Cargo 创建新项目非常简单。你可以创建一个新的二进制项目或库项目。

  • 创建二进制项目
cargo new hello_world
cd hello_world

这将创建一个名为 hello_world 的目录,包含以下文件和目录结构:

hello_world
├── Cargo.toml
└── src
    └── main.rs
  • 创建库项目
cargo new my_library --lib
cd my_library

这将创建一个名为 my_library 的目录,包含以下文件和目录结构:

my_library
├── Cargo.toml
└── src
    └── lib.rs

4. 构建和运行项目

创建项目后,可以使用以下命令构建和运行项目:

  • 构建项目
cargo build
  • 运行项目
cargo run
  • 构建发布版本
cargo build --release

示例代码 src/main.rs

fn main() {
    println!("Hello, world!");
}

5. 管理依赖项

在 Cargo 项目中,依赖项在 Cargo.toml 文件中管理。你可以添加第三方库作为依赖项。

示例:添加 rand 库作为依赖项:

Cargo.toml 中添加:

[dependencies]
rand = "0.8"

然后在代码中使用:

use rand::Rng;

fn main() {
    let mut rng = rand::thread_rng();
    let n: u32 = rng.gen_range(0..10);
    println!("Random number: {}", n);
}

6. 构建配置

Cargo 允许你通过 Cargo.toml 文件配置构建选项。你可以为不同的构建配置(如调试和发布)设置不同的选项。

示例:在 Cargo.toml 中添加构建配置:

[profile.dev]
opt-level = 0

[profile.release]
opt-level = 3

7. 测试项目

Cargo 提供了内置的测试支持。你可以编写测试并使用 Cargo 运行它们。

示例:在 src/main.rs 中添加测试:

fn add(a: i32, b: i32) -> i32 {
    a + b
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test_add() {
        assert_eq!(add(2, 3), 5);
    }
}

运行测试:

cargo test

8. 发布项目

当你准备好发布你的库时,可以使用 Cargo 将它发布到 crates.io。

  • 发布前准备:确保你已经登录并且在 Cargo.toml 中配置了正确的版本、作者和文档信息。

  • 发布库

cargo publish

9. 常用命令汇总

  • 创建项目cargo new <project_name> [--lib]
  • 构建项目cargo build [--release]
  • 运行项目cargo run
  • 测试项目cargo test
  • 检查项目cargo check
  • 发布项目cargo publish

总结

Cargo 是一个强大的工具,它使得 Rust 项目的管理和构建变得非常简单和高效。无论是创建项目、管理依赖、运行测试还是发布库,Cargo 都提供了简洁的命令和配置选项,让开发者能够专注于编写高质量的代码。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant