网站首页 > 教程文章 正文
简介
cargo 是 Rust 的构建系统和包管理器,负责创建项目、编译代码、管理依赖、运行测试等,是日常开发中最常用的工具。
创建项目
cargo new project_name # 创建 binary 项目(可执行)
cargo new --lib mylib # 创建 library 项目(供其它项目调用)
它会创建一个项目结构:
project_name/
├── Cargo.toml # 项目信息和依赖配置
└── src/
└── main.rs # 项目主入口(lib.rs 对于库)
项目结构和配置文件
Cargo.toml 是项目的核心配置文件,类似于 Java 的 pom.xml 或 Node.js 的 package.json:
[package]
name = "my_project"
version = "0.1.0"
edition = "2025"
[dependencies]
rand = "0.8" # 添加依赖
常用命令
编译项目
cargo build # 构建项目(debug 模式)
cargo build --release # 构建 release 模式(优化)
运行项目
cargo run
带参数运行
cargo run -- arg1 arg2
检查语法和错误(不编译生成目标文件)
cargo check
添加依赖包
cargo add serde # 需要安装 cargo-edit 插件
安装 cargo-edit:
cargo install cargo-edit
依赖管理
在 Cargo.toml 中手动添加:
[dependencies]
serde = "1.0"
reqwest = { version = "0.11", features = ["json"] }
添加本地 crate:
[dependencies]
mycrate = { path = "../mycrate" }
添加 Git 仓库依赖:
[dependencies]
mycrate = { git = "https://github.com/user/mycrate.git" }
测试 & 文档
测试
cargo test
生成文档
cargo doc --open
发布 Crate 到 crates.io
cargo login # 登录 crates.io(需要 token)
cargo publish # 发布
cargo package # 打包并检查
构建配置与工作区(workspace)
如果有多个 crate 项目组成一个工程:
根目录 Cargo.toml 配置:
[workspace]
members = [
"core",
"utils",
"web"
]
常用 cargo 插件
cargo install cargo-edit # 管理依赖(cargo add/remove/etc)
cargo install cargo-watch # 自动监控并重编译
cargo install cargo-audit # 审计安全问题
cargo install cargo-outdated # 查看依赖是否过期
命令速查表
- cargo new: 创建项目
- cargo build:编译项目
- cargo run:编译并运行
- cargo check:检查代码是否可编译
- cargo test:运行测试
- cargo doc --open:生成并打开文档
- cargo add xxx:添加依赖(需插件)
- cargo update:更新依赖到最新版本
- cargo clean:清理构建产物
- cargo install:安装二进制 crate(如 ripgrep)
猜你喜欢
- 2025-05-09 esbuild:一款快 10-100 倍的 JS 打包 / 压缩工具
- 2025-05-09 ESM 内功心法:化解 require 中的夺命一击!
- 2025-05-09 webpack中exportsFields和mainFields的用法
- 2025-05-09 Axios CORS 问题处理(axios设置cors)
- 2025-05-09 Nodejs 第七十四章(微服务)(nodejs微服务是什么)
- 2025-05-09 11个web前端开发人员必备的在线工具,功能强大,值得收藏
- 2025-05-09 新一代Python包管理工具来了(python community包)
- 2025-05-09 开发者提示工程实用指南(工程师开发使用中)
- 2025-05-09 软件构建工具汇总与选择指南(软件构造工具)
- 2025-05-09 NPM 常用命令详解(npm用法)
- 最近发表
-
- esbuild:一款快 10-100 倍的 JS 打包 / 压缩工具
- ESM 内功心法:化解 require 中的夺命一击!
- webpack中exportsFields和mainFields的用法
- Rust cargo 命令行工具使用教程(rust指令怎么用)
- Axios CORS 问题处理(axios设置cors)
- Nodejs 第七十四章(微服务)(nodejs微服务是什么)
- 11个web前端开发人员必备的在线工具,功能强大,值得收藏
- 新一代Python包管理工具来了(python community包)
- 开发者提示工程实用指南(工程师开发使用中)
- 软件构建工具汇总与选择指南(软件构造工具)
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- update from 语句 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 在线子域名爆破 (32)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)