Skip to content

2026-09-19 · 学习笔记 02

Rust 第一个项目 ​

创建项目、运行代码、生成 exe。所有命令在 Git Bash 执行,项目只需创建一次。

1. 创建项目 ​

bash
cargo new hello_rust
cd hello_rust

cargo new 生成项目骨架,默认初始化 Git 仓库;如果在已有 Git 仓库内创建项目,则不会再创建嵌套仓库。下面是独立创建项目时的目录:

hello_rust/
├── .git/           # 自动 git init
├── .gitignore      # 已写好 target/ 排除规则
├── Cargo.toml      # 项目配置(类似 pom.xml / package.json)
└── src/
    └── main.rs     # 入口源码

Cargo.toml 初始内容:

toml
[package]
name = "hello_rust"
version = "0.1.0"
edition = "2024"

[dependencies]

main.rs 初始内容:

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

edition = "2024" 指定 Rust 的语言版次,不是编译器版本号。新项目保持默认值即可。

2. 运行 ​

bash
cargo run

输出 Hello, world!。首次运行会编译,耗时取决于机器和依赖;源码、依赖及构建配置未变化时,通常复用已有编译产物。

首次运行后,项目中会生成 Cargo.lock 和 target/。Cargo.lock 记录解析后的依赖版本,应用项目应将它提交到 Git;target/ 存放编译产物,不提交。

3. 添加依赖(选学) ​

本项目只使用标准库,不需要添加依赖,[dependencies] 保持为空即可。

第三方库通常从 crates.io 获取,也可以来自 Git 仓库或本地路径。需要使用第三方库时,在项目目录执行 cargo add 库名。例如,使用随机数库时执行:

bash
export HTTPS_PROXY=http://127.0.0.1:7897
cargo add rand

cargo add 会把依赖写入 Cargo.toml。随后运行 cargo run,Cargo 自动下载、编译并链接所需依赖,不需要单独的安装步骤。

需要访问 crates.io 时,确保本地代理正在运行。export 设置对当前终端会话生效;下载新依赖、更新依赖或重新解析版本时都可能访问网络。

注册表依赖缓存位于 Cargo 主目录下的 registry/:设置了 CARGO_HOME 时是 $CARGO_HOME/registry,否则默认是用户主目录下的 .cargo/registry。

依赖及所需索引信息已缓存后,可以使用离线模式:

bash
cargo run --offline

缓存不完整时会报错,需要联网补齐。

4. 常用命令 ​

命令作用
cargo new <名字>创建项目
cargo run编译并运行
cargo check检查当前项目,通常比完整构建快,不生成当前项目的可执行文件
cargo build编译,产物在 target/debug/
cargo build --release编译优化版,产物在 target/release/,交付用这个
cargo add <库名>添加第三方依赖,自动修改 Cargo.toml
cargo update更新依赖到兼容范围内的最新版

默认情况下,编译产物位于项目下的 target/ 目录:

  • target/debug/ — 默认开发构建,编译较快,日常开发用。
  • target/release/ — 开启优化的构建,通常编译较慢,用于发布;体积取决于代码和构建设置。

本例生成的 exe 不需要对方安装 Rust。实际工具交付时,还需检查是否依赖额外 DLL、配置或资源文件。需要命令行参数的工具,应从终端运行;如果要供员工双击使用,还需设计输入和结果展示方式。

5. 验收 ​

在前面已创建的 hello_rust 项目目录执行,不要再次运行 cargo new:

bash
cargo run
cargo build --release
./target/release/hello_rust.exe

第一条和第三条都应输出:

text
Hello, world!

第二条应成功生成 target/release/hello_rust.exe。第三条直接运行编译后的 exe,不经过 Cargo。

在终端运行可以看清输出和错误。双击控制台程序后窗口可能立即关闭,不适合检查运行结果。

6. 常见问题 ​

下载依赖卡在 Downloading crates 确认本地代理正在运行,在当前 Git Bash 执行后重试:

bash
export HTTPS_PROXY=http://127.0.0.1:7897
cargo run

改了 Cargo.toml 后报错 保存文件后重新执行 cargo run,根据终端报错检查 TOML 格式、依赖版本和网络连接。Cargo 会自动处理配置变化,通常不需要清理 target/。

cargo new 提示目录已存在 项目已经创建时,进入该目录运行 cargo run,不要重复创建。

target/ 目录越来越大 正常,里面是编译中间产物,cargo clean 一条命令清空,需要时再重新编译。