这是我的目录结构:
lowks@lowkster ~/src/rustlang/gettingrusty $ tree .
.
├── Cargo.lock
├── Cargo.toml
├── foo.txt
├── src
│ ├── boolean_example.rs
│ ├── function_goodbye_world.rs
│ ├── listdir.rs
│ ├── looping.rs
│ ├── main.rs
│ ├── pattern_match.rs
│ └── write_to_file.rs
└── target
├── build
├── deps
├── examples
├── gettingrusty
└── native
6 directories, 11 files
当我运行'货物构建'时,它似乎只构建main.rs
。我该如何更改Cargo.toml以构建其余文件?
答案 0 :(得分:6)
Rust编译器同时编译所有文件以构建 crate ,它是可执行文件或库。要将文件添加到您的包中,请将mod
项添加到您的包根(此处为main.rs)或其他模块中:
mod boolean_example;
mod function_goodbye_world;
mod listdir;
mod looping;
mod pattern_match;
mod write_to_file;
要从您的crate root访问另一个模块中定义的项目,您必须使用模块名称限定该项目。例如,如果模块foo
中有一个名为looping
的函数,则必须将其称为looping::foo
。
您还可以添加use
语句来导入模块范围内的名称。例如,如果您添加use looping::foo;
,则可以使用foo
来引用looping::foo
。
有关详细信息,请参阅section on Crates and Modules in the Rust Programming Language book。
答案 1 :(得分:3)
货物可以识别几种不同的types of binaries or targets:
例如,如果文件boolean_example.rs
是您要运行的独立示例,则可以将其放在examples
目录中,并像这样告诉货物:
[[example]]
name = "boolean" # examples/boolean.rs
这使您可以使用cargo run --example boolean
还请阅读package layout上的货运手册页面,以了解如何构造这些目标目录。
答案 2 :(得分:2)
将other.rs
文件放入bin
文件夹(src
)的./src/bin/other.rs
子文件夹中。并运行cargo build --bin other
或cargo run --bin other