电竞比分网-中国电竞赛事及体育赛事平台

分享

Cargo:Rust 的構(gòu)建系統(tǒng)和包管理器

 大前端之旅 2025-09-30 發(fā)布于甘肅

Cargo:Rust 的構(gòu)建系統(tǒng)和包管理器

Cargo 是 Rust 的構(gòu)建系統(tǒng)和包管理器,是 Rust 開發(fā)生態(tài)系統(tǒng)的核心工具。絕大多數(shù) Rust 開發(fā)者(Rustacean)都使用 Cargo 來管理項(xiàng)目,因?yàn)樗梢宰詣?dòng)處理許多復(fù)雜的任務(wù)。

Rust 入門:Hello World 程序

Rust 安裝指南(Mac)

Cargo 的核心功能

Cargo 主要負(fù)責(zé)以下任務(wù):

  • · ?? 構(gòu)建代碼:編譯 Rust 源代碼
  • · ?? 依賴管理:下載和管理第三方庫(稱為 依賴
  • · ?? 項(xiàng)目管理:創(chuàng)建和組織項(xiàng)目結(jié)構(gòu)
  • · ?? 測(cè)試運(yùn)行:執(zhí)行單元測(cè)試和集成測(cè)試
  • · ?? 文檔生成:生成項(xiàng)目文檔

檢查 Cargo 安裝

由于 Cargo 隨 Rust 一起安裝,你可以通過以下命令檢查是否正確安裝:

cargo --version

預(yù)期輸出示例:

cargo 1.90.0 (840b83a10 2025-07-30)

如果看到版本號(hào),說明 Cargo 已正確安裝!如果出現(xiàn) command not found 錯(cuò)誤,請(qǐng)參考 Rust 安裝文檔重新安裝。

使用 Cargo 創(chuàng)建項(xiàng)目

讓我們使用 Cargo 創(chuàng)建一個(gè)新項(xiàng)目,看看它與之前手動(dòng)創(chuàng)建的 "Hello, world!" 項(xiàng)目有什么不同。

創(chuàng)建新項(xiàng)目

在任何操作系統(tǒng)上,都可以使用以下命令:

cargo new hello_cargo
cd hello_cargo

這個(gè)命令會(huì):

  • · 創(chuàng)建名為 hello_cargo 的新目錄
  • · 在該目錄中初始化一個(gè)完整的 Rust 項(xiàng)目
  • · 自動(dòng)設(shè)置 Git 版本控制(如果不在已有的 Git 倉庫中)

項(xiàng)目結(jié)構(gòu)

Cargo 會(huì)生成以下項(xiàng)目結(jié)構(gòu):

hello_cargo/
├── Cargo.toml          # 項(xiàng)目配置文件
├── .gitignore          # Git 忽略文件
├── .git/               # Git 倉庫(如果適用)
└── src/
    └── main.rs         # 源代碼文件

Cargo.toml 配置文件

Cargo.toml 是項(xiàng)目的核心配置文件:

[package]
name = "hello_cargo"
version = "0.1.0"
edition = "2024"

[dependencies]

配置說明:

配置項(xiàng)
說明
[package]
包信息區(qū)塊
name
項(xiàng)目名稱
version
項(xiàng)目版本(遵循語義化版本)
edition
使用的 Rust 版本
[dependencies]
依賴包列表

?? TOML 格式:Cargo 使用 TOML(Tom's Obvious, Minimal Language)格式,這是一種簡單易讀的配置文件格式。

源代碼文件

src/main.rs 包含默認(rèn)的 Hello World 程序:

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

Cargo 項(xiàng)目的優(yōu)勢(shì)

與手動(dòng)創(chuàng)建的項(xiàng)目相比,Cargo 項(xiàng)目具有以下優(yōu)勢(shì):

  • · ?? 標(biāo)準(zhǔn)化結(jié)構(gòu):所有源代碼放在 src/ 目錄
  • · ?? 配置管理:使用 Cargo.toml 統(tǒng)一管理項(xiàng)目配置
  • · ?? 版本控制:自動(dòng)初始化 Git 倉庫
  • · ?? 項(xiàng)目整潔:根目錄只放置配置文件和文檔

轉(zhuǎn)換現(xiàn)有項(xiàng)目

如果你有一個(gè)非 Cargo 項(xiàng)目(如之前的 Hello World),可以輕松轉(zhuǎn)換:

  1. 1. 將源代碼移動(dòng)到 src/ 目錄
  2. 2. 運(yùn)行 cargo init 自動(dòng)生成 Cargo.toml
# 在現(xiàn)有項(xiàng)目目錄中
cargo init

構(gòu)建和運(yùn)行 Cargo 項(xiàng)目

現(xiàn)在讓我們學(xué)習(xí)如何使用 Cargo 構(gòu)建和運(yùn)行項(xiàng)目。Cargo 提供了多個(gè)命令來滿足不同的開發(fā)需求。

cargo build - 構(gòu)建項(xiàng)目

在項(xiàng)目目錄中運(yùn)行構(gòu)建命令:

cd hello_cargo
cargo build

輸出示例:

   Compiling hello_cargo v0.1.0 (/Users/jianguo/Desktop/rust/rust/hello_cargo)
    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.65s

構(gòu)建結(jié)果:

  • · 創(chuàng)建可執(zhí)行文件:target/debug/hello_cargo(Windows 上是 target\debug\hello_cargo.exe
  • · 生成 Cargo.lock 文件:記錄依賴的確切版本
  • · 所有構(gòu)建產(chǎn)物都放在 target/ 目錄中

運(yùn)行構(gòu)建的程序

# Linux/macOS
./target/debug/hello_cargo

# Windows
.\target\debug\hello_cargo.exe

輸出:

Hello, world!

cargo run - 一鍵構(gòu)建并運(yùn)行

cargo run 命令將構(gòu)建和運(yùn)行合并為一步:

cargo run

輸出示例:

    Finished dev [unoptimized + debuginfo] target(s) in 0.0 secs
     Running `target/debug/hello_cargo`
Hello, world!

智能構(gòu)建:

  • · 如果代碼未修改,直接運(yùn)行現(xiàn)有的可執(zhí)行文件
  • · 如果代碼已修改,先重新構(gòu)建再運(yùn)行

cargo check - 快速檢查

cargo check 只檢查代碼是否能夠編譯,不生成可執(zhí)行文件:

cargo check

輸出示例:

   Checking hello_cargo v0.1.0 (file:///projects/hello_cargo)
    Finished dev [unoptimized + debuginfo] target(s) in 0.32 secs

使用場(chǎng)景:

  • · 開發(fā)過程中快速驗(yàn)證代碼正確性
  • · 比 cargo build 速度更快
  • · 適合頻繁的代碼檢查

Cargo 命令總結(jié)

命令
功能
使用場(chǎng)景
cargo new <項(xiàng)目名>
創(chuàng)建新項(xiàng)目
開始新項(xiàng)目
cargo build
構(gòu)建項(xiàng)目
生成可執(zhí)行文件
cargo run
構(gòu)建并運(yùn)行
開發(fā)和測(cè)試
cargo check
快速檢查語法
開發(fā)過程中驗(yàn)證
cargo init
初始化現(xiàn)有目錄
轉(zhuǎn)換現(xiàn)有項(xiàng)目

跨平臺(tái)優(yōu)勢(shì)

Cargo 的一個(gè)重要優(yōu)勢(shì)是跨平臺(tái)一致性:無論在 Linux、macOS 還是 Windows 上,命令都完全相同。這大大簡化了開發(fā)和協(xié)作流程。

發(fā)布構(gòu)建

cargo build --release

當(dāng)項(xiàng)目準(zhǔn)備發(fā)布時(shí),使用優(yōu)化構(gòu)建:

cargo build --release

發(fā)布構(gòu)建特點(diǎn):

構(gòu)建類型
目錄
優(yōu)化
編譯時(shí)間
運(yùn)行速度
Debug
target/debug/
?
Release
target/release/
?

使用建議:

  • · 開發(fā)階段:使用 debug 構(gòu)建,編譯快,便于調(diào)試
  • · 性能測(cè)試:使用 release 構(gòu)建,獲得真實(shí)的性能數(shù)據(jù)
  • · 最終發(fā)布:使用 release 構(gòu)建,提供最佳用戶體驗(yàn)

Cargo 的價(jià)值

簡單項(xiàng)目 vs 復(fù)雜項(xiàng)目

雖然對(duì)于簡單的 Hello World 項(xiàng)目,Cargo 可能看起來"大材小用",但它的真正價(jià)值在于:

  • · ?? 可擴(kuò)展性:項(xiàng)目復(fù)雜度增加時(shí),Cargo 的優(yōu)勢(shì)逐漸顯現(xiàn)
  • · ?? 依賴管理:自動(dòng)處理第三方庫的下載、編譯和版本管理
  • · ??? 構(gòu)建優(yōu)化:智能的增量編譯和緩存機(jī)制
  • · ?? 團(tuán)隊(duì)協(xié)作:標(biāo)準(zhǔn)化的項(xiàng)目結(jié)構(gòu)和構(gòu)建流程

實(shí)際工作流程

在實(shí)際開發(fā)中,通常的工作流程是:

# 1. 克隆項(xiàng)目
git clone https://github.com/user/rust-project.git
cd rust-project

# 2. 構(gòu)建項(xiàng)目
cargo build

# 3. 運(yùn)行項(xiàng)目
cargo run

# 4. 開發(fā)過程中持續(xù)檢查
cargo check

進(jìn)一步學(xué)習(xí)

想要深入了解 Cargo 的更多功能,請(qǐng)查閱:

  • · ?? Cargo 官方文檔
  • · ?? 依賴管理和版本控制
  • · ?? 測(cè)試框架集成
  • · ?? 包發(fā)布到 crates.io

總結(jié)

通過學(xué)習(xí) Cargo,你已經(jīng)掌握了:

  1. 1. ? 項(xiàng)目創(chuàng)建:使用 cargo new 創(chuàng)建標(biāo)準(zhǔn)化項(xiàng)目
  2. 2. ? 構(gòu)建管理:理解 debug 和 release 構(gòu)建的區(qū)別
  3. 3. ? 開發(fā)工具:熟悉 build、runcheck 命令
  4. 4. ? 項(xiàng)目結(jié)構(gòu):了解 Cargo 項(xiàng)目的標(biāo)準(zhǔn)布局
  5. 5. ? 配置文件:掌握 Cargo.toml 的基本配置

現(xiàn)在你已經(jīng)具備了使用 Rust 和 Cargo 開發(fā)項(xiàng)目的基礎(chǔ)知識(shí)!是時(shí)候開始構(gòu)建更有趣的程序了!??

GitCode

國內(nèi)領(lǐng)先的代碼托管平臺(tái):https:///

歡迎大家在GitCode平臺(tái)暢游,學(xué)習(xí)Rust

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多