文章目錄
- 你好,Cargo!
- 驗證Cargo安裝
- 使用Cargo創建項目
- 新建項目
- 配置文件解析
- 默認代碼結構
- Cargo工作流
- 常用命令速查表
- 詳細使用說明
- 1. 編譯項目
- 2. 運行程序
- 3.快速檢查
- 4. 發布版本構建
- Cargo的設計哲學
- 約定優于配置
- 工程化優勢
- 開發建議
- 1. 新項目初始化?
- 2. 現有項目遷移?
- 3. 依賴管理實踐
- 總結
你好,Cargo!
Cargo是Rust的構建系統和包管理器。絕大多數Rust開發者使用這個工具管理項目,因為它能自動化處理諸多任務:代碼編譯、依賴庫下載、依賴構建等(代碼所需的庫文件稱為??依賴??)。
即使是簡單的"Hello, world!"項目(無依賴),使用Cargo也能獲得規范的工程結構。隨著項目復雜度提升,Cargo在依賴管理方面的優勢將愈發明顯。
驗證Cargo安裝
Cargo會隨Rust官方安裝包自動安裝。驗證是否安裝成功:
$ cargo --version
若顯示版本號(如cargo 1.86.0 (adf9b6ad1 2025-02-28))則表示安裝正常。
使用Cargo創建項目
新建項目
在項目目錄中執行:
$ cargo new hello_cargo
$ cd hello_cargo
該命令生成以下工程結構:
hello_cargo/├── Cargo.toml # 項目配置文件└── src/└── main.rs # 入口文件
同時自動初始化Git倉庫(若當前不在Git倉庫中),生成.gitignore文件。
提示:使用cargo new --vcs=git強制生成Git倉庫,或–vcs=none跳過版本控制
配置文件解析
??Cargo.toml?? 文件內容示例:
[package]
name = "hello_cargo" # 項目名稱
version = "0.1.0" # 版本號
edition = "2024" # Rust版本[dependencies] # 依賴聲明區
-
使用TOML格式編寫配置
-
edition字段指定Rust版本(詳見附錄E)
-
依賴將在后續章節中添加
默認代碼結構
自動生成的??src/main.rs??包含經典Hello World:
fn main() {println!("Hello, world!");}
Cargo強制約定源代碼必須位于src目錄,頂層目錄存放配置文件、文檔等非代碼資源。
Cargo工作流
常用命令速查表
命令 | 作用 | 輸出路徑 |
---|---|---|
cargo build | 編譯調試版本 | target/debug/ |
cargo run | 編譯并運行 | 自動選擇最新編譯結果 |
cargo check | 快速語法檢查(不生成二進制) | 無 |
cargo build --release | 編譯優化版本 | target/release/ |
詳細使用說明
1. 編譯項目
$ cargo build
-
生成調試用可執行文件:target/debug/hello_cargo(Windows為.exe)
-
首次編譯生成Cargo.lock文件(自動跟蹤依賴版本)
2. 運行程序
$ ./target/debug/hello_cargo # 直接運行$ cargo run # 編譯后自動運行
- cargo run會智能判斷是否需要重新編譯
運行效果如下圖:
3.快速檢查
$ cargo check
-
檢查編譯錯誤但不生成二進制文件
-
速度比完整編譯快3-5倍,適合開發時實時驗證
4. 發布版本構建
當項目需要部署時,使用優化編譯:
$ cargo build --release
-
生成的可執行文件位于target/release/
-
啟用編譯器優化(運行更快,編譯更慢)
-
適合性能測試和最終發布
Cargo的設計哲學
約定優于配置
-
強制源代碼目錄結構
-
標準化配置文件格式
-
跨平臺命令一致性(Linux/macOS/Windows命令相同)
工程化優勢
隨著項目發展,Cargo的價值體現在:
??依賴管理??:自動處理嵌套依賴
??工作區支持??:管理多crate項目
??構建緩存??:增量編譯加速開發
??元數據管理??:通過Cargo.toml聲明項目屬性
開發建議
1. 新項目初始化?
總是使用cargo new創建標準工程結構
2. 現有項目遷移?
手動創建src目錄和Cargo.toml,或運行:
$ cargo init
3. 依賴管理實踐
-
添加依賴:直接編輯Cargo.toml的[dependencies]
-
更新依賴:
cargo update
-
清除緩存:
cargo clean
總結
-
Cargo核心功能:構建系統 + 包管理器
-
使用cargo new創建規范項目
-
通過build/run/check管理開發流程
-
區分調試構建與發布構建
-
理解Cargo的工程化設計理念