现有模块(output_0.rs/mod_1/output_1.rs)不被识别为库(mods_dir/lib.rs)的一部分。
error[E0583]: file not found for module `output_0`
--> mod_dirs\src\lib.rs:18:5
|
18 | pub mod output_0;
| ^^^^^^^^^^^^^^^^^
|
= help: to create the module `output_0`, create file "mod_dirs\src\mods_dir\output_0.rs" or "mod_dirs\src\mods_dir\output_0\mod.rs"
模块树必须与文件树具有相同的布局。您正在定义模块
crate::mods_dir::output_0
,但您的 src/
目录包含 output_0.rs
文件,而不是 mods_dir/output_0.rs
。请参阅本书的部分了解如何布局模块或Rust 参考。
您可以通过两种方式解决:
修复您的文件结构/模块结构(将
output_0.rs
放入 mods_dir/
中,或删除 mods_dir
模块)。这应该是最好的解决方案,因为 Rust 项目的布局有一个共同的约定,如果你改变它,其他人可能会觉得很困惑。
#[path]
属性来覆盖它们指向的位置。
#[path = "."]
mod mods_dir {
pub mod output_0;
}