rust开发环境


安装rust:https://www.rust-lang.org/tools/install

windows安装

rustup-init 安装程序自动安装MSVC
安装时会提示选择默认选1,触发MSVC安装程序
或者手动安装:
安装https://visualstudio.microsoft.com/zh-hans/downloads/ 的Visual Studio 生成工具

安装时勾选使用 C++ 的桌面开发,确保有以下

  • MSVC v14x C++ x64/x86 build tools
  • Windows 10 SDK 或 Windows 11 SDK
  • C++ CMake tools for Windows 可选,但建议装

安装完MSVC后继续按1,进行标准安装

ubuntu

安装工具链
sudo apt install -y curl build-essential pkg-config libssl-dev
安装rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
当前终端立刻生效
source "$HOME/.cargo/env"

安装完要做的

rustup update stable 更新 stable 工具链

检查版本

rustc --version 查看 Rust 编译器版本

cargo --version 查看 Cargo 版本

rustup --version 查看 rustup 版本

rustup default stable 设置默认 Rust 工具链为 stable

AI开发

LSP 服务:
rustup component add rust-analyzer 安装组件方便cli AI调用
rust-analyzer --version 检查是否生效

cargo watch -x run 服务热更新持续运行

waindows开发时项目中放置两个ps1脚本
ai-check.ps1

powershell
$ErrorActionPreference = "Stop"

cargo clippy --workspace --all-targets --message-format=short -- -D warnings
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }

ai-verify.ps1

powershell
$ErrorActionPreference = "Stop"

& "$PSScriptRoot\ai-check.ps1"
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }

cargo test --workspace
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }

linux开发时创建两个sh文件
ai-check.sh:

sh
#!/usr/bin/env bash
set -euo pipefail

cargo clippy --workspace --all-targets --message-format=short -- -D warnings

ai-verify.sh

sh
#!/usr/bin/env bash
set -euo pipefail

"$(dirname "$0")/ai-check.sh"
cargo test --workspace

提示词:

markdown
## 自检规则

### 自检节奏
- **每次修改 Rust 代码后**(无论改动多小),必须立即运行 `./test/ai-check.sh`
- **完成一个完整功能切片后**(例如:新增了一个函数并补了对应测试、修复了一个 bug、完成了用户描述的一个独立需求),必须运行 `./scripts/ai-verify.sh`
- 准备向用户报告"任务完成"之前,必须运行 `./scripts/ai-verify.sh` 并确认通过

### 失败处理
- 脚本返回非零退出码 = 失败,**必须先修复所有错误**才能继续
- 修复后必须重新运行同一个脚本确认通过,不能凭"我觉得应该好了"判断
- 同一个错误**连续修复 3 次仍失败**,停止尝试,向用户说明卡在哪里、试过什么方案
- 不允许通过删除测试、注释代码、加 `#[allow(...)]` 等方式"绕过"错误,除非用户明确同意

### 输出阅读
- 必须真实阅读脚本输出,不能只看退出码
- clippy 警告等同于错误处理(脚本已用 `-D warnings` 强制)

vscode插件

rust-analyzer 官方rust插件
CodeLLDB 调试用
Even Better TOML 对toml高亮,rust使用toml做配置文件
Error Lens 错误直接显示在代码旁

命令

cargo -V 检测是否安装成功

编译配置文件

Cargo.toml:

toml
[profile.release]
lto = "fat"           # 开启链接时优化(更小/更快)  # 开启链接时优化(更小/更快)
codegen-units = 1     # 提升最终优化质量(编译稍慢)  # 提升最终优化质量(编译稍慢)
strip = true          # 去掉符号表(减小体积,需较新工具链)  # 去掉符号表(减小体积,需较新工具链)
panic = "abort"       # 放弃回溯,进一步减小体积(按需)  # 放弃回溯,进一步减小体积(按需)

# 网络/HTTPS,建议依赖 rustls 而非系统 OpenSSL,以免再引入系统库依赖(这个可选)
[dependencies]
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls"] }  # 避免系统 OpenSSL  # 纯 Rust TLS 更通用
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }                  # 常见异步运行时  # 兼容性良好

工具链rust-toolchain.toml:

toml
[toolchain]
channel = "1.79.0"          # 选择你验证过的稳定版本  # 固定 Rust 版本,避免升级引入不确定性
components = ["rustfmt", "clippy"]  # 可选:统一代码风格与静态检查  # 保持团队一致的工具

构建

构建并锁定依赖版本
cargo build --release --locked

纯rust时用musl静态,最少依赖
rustup target add x86_64-unknown-linux-musl 添加x86_64 +musl 目标
cargo build --release --locked --target x86_64-unknown-linux-musl 静态构建

跨平台构建

cargo install cargo-zigbuild 安装 zigbuild,一次即可
rustup target add aarch64-unknown-linux-musl 添加 ARM64 + musl 目标
cargo zigbuild --target aarch64-unknown-linux-musl --release 生成 ARM64 静态二进制

glibc动态编译

依赖 glibc 版本,与目标系统库集成时更方便

目标平台

Tier 1
x86_64-unknown-linux-gnu linux x86_64
i686-unknown-linux-gnu linux 32位
aarch64-unknown-linux-gnu linux arm64位

x86_64-pc-windows-msvc windows x86_64
x86_64-pc-windows-gnu windows x86_64
i686-pc-windows-msvc windows 32位

x86_64-apple-darwin 苹果x86_64
aarch64-apple-darwin苹果arm

静态无额外依赖,体积会更大
x86_64-unknown-linux-musl
aarch64-unknown-linux-musl

更多目标平台参考:https://doc.rust-lang.org/nightly/rustc/platform-support.html

卸载rust

rustup self uninstall