Rust 工作原理
在写第一行 Rust 代码之前,先理解 Rust 程序大致怎样工作,会让你后面遇到编译器错误时更有耐心。
简单说:Rust 源码会先经过 rustc 编译器检查,再通过 LLVM 生成机器码,最后链接成可执行文件。它和 C/C++ 一样属于 ahead-of-time 编译语言,不 需要传统虚拟机,也不依赖垃圾回收器。
从源码到可执行文件
一个 Rust 程序通常经历这些阶段:
.rs 源码
-> rustc 解析与类型检查
-> ownership / borrowing / lifetime 检查
-> MIR 中间表示
-> LLVM 优化与代码生成
-> linker 链接
-> 可执行文件
初学时你不需要深入 MIR 或 LLVM。你只需要知道,Rust 的很多安全检查发生在生成机器码之前。
rustc 和 cargo 的关系
rustc 是 Rust 编 译器。你可以直接编译单个文件:
rustc main.rs
cargo 是 Rust 的构建工具和包管理器。真实项目中你通常使用:
cargo build
cargo run
cargo test
你可以把 cargo 理解成项目经理:它会读取 Cargo.toml,下载依赖,调用 rustc,运行测试,生成文档。