Crates

Crate 是 Rust 中的一个编译单元。每当调用 rustc some_file.rs 时,some_file.rs 就会被视为一个 crate 文件。如果 some_file.rs 中包含 mod 声明,那么模块文件的内容会被插入到 crate 文件中找到 mod 声明的地方,这发生在编译器运行 之前。换句话说,模块 不会 被单独编译,只有 crate 才会被编译。

一个 crate 可以被编译成二进制文件或库文件。默认情况下,rustc 会从一个 crate 生成二进制文件。这个行为可以通过传递 --crate-type 标志并指定为 lib 来覆盖。