crate(中文有“包,包装箱”之意)是 Rust 中的编译单元。不管什么时候调用 rustc some_file.rs
,some_file.rs
都被当作 crate 文件。如果 some_file.rs
里面含有 mod
声明,那么模块文件的内容将在运行编译器之前与 crate 文件合并。换句话说, 模块不会单独进行编译,只有 crate 文件进行了编译(英文:modules
do not get compiled individually, only crates get compiled)。
crate 可以编译成二进制可执行文件(binary)或库文件(library)。默认情况下,rustc
将从 crate 产生库文件。这种行为可以通过 rustc
的选项 --crate-type
覆盖。