这是我的目录结构:
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
Run Code Online (Sandbox Code Playgroud)
当我运行'货物构建'时,它似乎只是构建main.rs.我该如何更改Cargo.toml以构建其余文件?
小智 16
将other.rs文件放入bin文件src夹 ( ./src/bin/other.rs) 的子文件夹中。并运行cargo build --bin other或cargo run --bin other
Rust编译器同时编译所有文件以构建一个包,它是一个可执行文件或一个库.要将文件添加到您的包中,请将mod项添加到您的包根(此处为main.rs)或其他模块:
mod boolean_example;
mod function_goodbye_world;
mod listdir;
mod looping;
mod pattern_match;
mod write_to_file;
Run Code Online (Sandbox Code Playgroud)
要从包根目录访问另一个模块中定义的项目,您必须使用模块名称限定该项目.例如,如果您有一个foo在模块中命名的函数looping,则必须将其称为looping::foo.
您还可以添加use语句以导入模块范围中的名称.例如,如果你添加use looping::foo;,那么你可以foo用来引用looping::foo.
有关更多信息,请参阅Rust Programming Language一书中有关Crates和Modules的部分.
小智 5
Cargo 可以识别几种不同类型的二进制文件或目标:
例如,如果该文件boolean_example.rs是您想要运行的独立示例,您可以将其放入一个examples目录中并像这样告诉 Cargo 它:
[[example]]
name = "boolean" # examples/boolean.rs
Run Code Online (Sandbox Code Playgroud)
这使您可以调用您的示例 cargo run --example boolean
阅读货物手册关于包装布局的页面,以了解如何构建这些目标目录。