Module 对生锈模块感到困惑

Module 对生锈模块感到困惑,module,rust,Module,Rust,我在src/中有三个文件,如下所示: 图书馆 pub mod first 一等兵 fn hello() {} 梅因 pub mod lib 这给了我一个错误的说法: 错误[E0583]:未找到模块'first'的文件` -->src/lib.rs:1:9 | 1 |先发布模块; | ^^^^^ | =帮助:将目录“src”中的文件命名为lib/first.rs或lib/first/mod.rs 现在,如果我从main.rs中删除pub mod lib,一切都可以正常编译

我在
src/
中有三个文件,如下所示:

图书馆

pub mod first
一等兵

fn hello() {}
梅因

pub mod lib
这给了我一个错误的说法:

错误[E0583]:未找到模块'first'的文件`
-->src/lib.rs:1:9
|
1 |先发布模块;
|         ^^^^^
|
=帮助:将目录“src”中的文件命名为lib/first.rs或lib/first/mod.rs
现在,如果我从
main.rs
中删除
pub mod lib
,一切都可以正常编译


我不明白为什么会发生这种情况。

编译器说的帮助非常有意义。 当您首先编写
pub mod时
lib.rs
中,它检查
first.rs
文件或
lib
文件夹和
mod.rs
文件中的
first
文件夹

请注意,
mod.rs
的用法随时间而变化

现在,如果我从main.rs中删除pub mod lib,一切都可以正常编译

当您删除
pub mod lib时从您的主目录

您基本上说,这段代码不会在生产中使用,因此甚至不需要编译。因此,基本上代码不会包含在编译中


这就是为什么删除
pub mod lib时它会起作用

这有帮助吗?请不要命名模块
lib
。这可能会造成混乱,因为
lib.rs
是库板条箱的根
您可以有效地删除所有代码,这样错误就会消失。