库无法识别目录模块

问题描述 投票:0回答:1

现有模块(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"

enter image description here

visual-studio-code rust
1个回答
0
投票

模块树必须与文件树具有相同的布局。您正在定义模块

crate::mods_dir::output_0
,但您的
src/
目录包含
output_0.rs
文件,而不是
mods_dir/output_0.rs
。请参阅本书的部分了解如何布局模块或Rust 参考

您可以通过两种方式解决:

  1. 修复您的文件结构/模块结构(将

    output_0.rs
    放入
    mods_dir/
    中,或删除
    mods_dir
    模块)。这应该是最好的解决方案,因为 Rust 项目的布局有一个共同的约定,如果你改变它,其他人可能会觉得很困惑。

  2. 在模块上使用

    #[path]
    属性来覆盖它们指向的位置。

#[path = "."]
mod mods_dir {
    pub mod output_0;
}
© www.soinside.com 2019 - 2024. All rights reserved.