What is rustc?
什么是 rustc?
欢迎来到 "The rustc book"! rustc
是Rust程序语言的编译器, 它由项目本身提供. 编译器将获取您的源代码并以库或可执行文件的形式生成二进制代码.
大多数Rust程序员并不会直接使用 rustc
命令, 取而代之的是使用
Cargo. 不过所有的服务都通过 rustc
来完成! 如果你想查看 Cargo 是如何使用 rustc
的, 你可以使用如下命令来查看:
$ cargo build --verbose
它将打印出每个 rustc
的调用. 这本书可以帮忙你来理解这些选项的作用. 另外, 虽然大多数
Rustaceans(译者注:Rust粉)使用 Cargo, 但并不是所有的Rustaceans都这样(译者注: 使用上面的命令)做: 有时候他们将 rustc
集成到其它构建系统中. 本书会为你提供执行这些操作的所有选项的指南。
基本用法
假设你在 hello.rs
文件中有一个小的 hello world 程序:
fn main() {
println!("Hello, world!");
}
你可以使用 rustc
命令将此源代码转换成可执行的文件:
$ rustc hello.rs
$ ./hello # 在linux上
$ .\hello.exe # 在windows上
请注意,我们只是向 rustc
传递了 crate root 根目录, 而不是我们想要去编译第一个文件. 例如我们有一个如下所示代码的 main.rs
文件
mod foo;
fn main() {
foo::hello();
}
创建 foo.rs
并添加如下内容:
pub fn hello() {
println!("Hello, world!");
}
我们使用下面的命令去编译它:
$ rustc main.rs
你不需要告诉 rustc
关于 foo.rs
的信息; mod
语句会关联需要的一切. 这与你使用C语言编译有所不同, 你可以在每个文件上单独使用编译功能,会将需要的一切都关联起来. 换句话说, the crate 是一个翻译单位,而不是特定的模块.(译者注: 你在使用 rustc main.rs时,只指定了你的目标文件,它会自己通过mod关联所有依赖的其它一切文件并一起编译)
文档原文: What is rustc? - The rustc book
GitHub:rust/src/doc/rustc at master · rust-lang/rust
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。