安装并创建项目
工具链概念
安装 Rust 实际上是安装一套工具链,包含三个核心组件:
| 组件 | 作用 |
|---|---|
rustup | 工具链管理器,负责安装/更新/切换 Rust 版本 |
rustc | Rust 编译器,将 .rs 源代码编译成可执行文件 |
cargo | 构建工具 + 包管理器,日常开发几乎只和它打交道 |
实际开发中你几乎不会直接调用
rustc,而是通过cargo来管理整个项目的编译、依赖和测试。
安装 Rust 工具链
Linux / macOS:
bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shWindows:
- 前往 rustup官网 下载并运行安装程序
- 安装完成后在终端执行
rustc --version验证安装成功
VSCode 扩展(推荐安装):
rust-analyzer: 提供代码补全、类型推断、错误提示等功能,是 Rust 开发的必备扩展
rustup 工具链管理
rustup 是 Rust 的工具链管理器,负责安装、更新和切换 Rust 版本。以下是一些常用的 rustup 命令:
| 命令 | 说明 |
|---|---|
rustup update | 更新到最新稳定版 |
rustup show | 查看已安装的工具链 |
rustup toolchain install nightly | 安装 nightly 版本 |
rustup target add wasm32-unknown-unknown | 添加编译目标(如 WebAssembly) |
cargo 创建项目
cargo 是 Rust 的构建工具和包管理器(类似应用商店),提供了丰富的命令来帮助开发者管理项目、依赖和构建流程。
在 Cargo和Crates.io 章节会详细介绍 Cargo 的使用,这里先介绍如何创建项目:
bash
cargo new hello_rust # 创建名为 hello_rust 的二进制项目(可执行程序)
cargo new mylib --lib # 创建名为 mylib 的库项目(--lib 代表创建库项目)执行 cargo new hello_rust 后会生成以下文件结构:
hello_rust/
├── Cargo.toml # 项目配置文件(类似 package.json)
└── src/
└── main.rs # 程序入口执行 cargo new mylib --lib 后会生成以下文件结构:
mylib/
├── Cargo.toml # 项目配置文件
└── src/
└── lib.rs # 库入口Cargo.toml
项目的配置文件,包含项目元信息和依赖列表:
toml
[package]
name = "hello_rust" # 项目名
version = "0.1.0" # 版本号
edition = "2024" # Rust 版本
[dependencies]
# 在这里添加依赖edition表示使用的 Rust 语法版本,此教程使用2024版本,支持最新的语言特性- 添加依赖推荐使用
cargo add <crate-name>命令,会自动写入此文件
src/main.rs
二进制项目的默认入口文件是 src/main.rs,库项目则是 src/lib.rs。
rust
fn main() {
// 打印 "Hello, world!" 到控制台
println!("Hello, world!");
}rust
// src/lib.rs 是一个库项目的入口文件,通常用于定义公共接口
pub fn greet() {
println!("Hello from the library!");
}main 函数是 src/main.rs 文件中程序的起点,程序从这里开始执行。
cargo 常用命令
构建与运行
| 命令 | 说明 |
|---|---|
cargo run / cargo r | 编译并运行(Debug 模式) |
cargo run --release | 编译并运行(Release 模式,开启优化) |
cargo build | 仅编译,不运行 |
cargo build --release | 编译 Release 版本 |
cargo check | 只做语法检查,不生成可执行文件,速度更快 |
Debug 和 Release 的区别:
- Debug: 编译快,包含调试信息,运行慢;开发阶段默认使用
- Release: 编译慢,开启优化,运行快;发布时使用
开发时用
cargo run,发布时用cargo build --release。
依赖管理
| 命令 | 说明 |
|---|---|
cargo add <crate-name> | 添加依赖(自动写入 Cargo.toml,推荐使用) |
cargo update | 更新所有依赖到最新兼容版本 |
cargo tree | 查看依赖树,排查依赖冲突 |
代码质量
| 命令 | 说明 |
|---|---|
cargo fmt | 格式化代码(使用官方 rustfmt) |
cargo clippy | Lint 检查,给出代码质量建议(比编译器提示更丰富) |
cargo doc --open | 生成并在浏览器中打开项目文档 |
cargo doc --open --document-private-items | 生成包含私有项的文档 |
其他命令
| 命令 | 说明 |
|---|---|
cargo test | 运行单元测试(详见自动化测试) |
cargo clean | 清理构建产物(删除 target/ 目录) |
cargo publish | 发布到 crates.io |
cargo --help | 查看帮助信息 |