对生锈模块感到困惑

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

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

礼拜.人生

pub mod first

first.人生

fn hello() {}

卖弄.人生

pub mod lib

这给了我一个错误说:

error[E0583]: file not found for module `first`
 --> src/lib.rs:1:9
  |
1 | pub mod first;
  |         ^^^^^
  |
  = help: name the file either lib/first.rs or lib/first/mod.rs inside the directory "src"

现在,如果我从pub mod lib删除main.rs,一切都编译好。

我不明白为什么会这样。

module rust
1个回答
2
投票

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

请注意mod.rs用法随Rust 2018改变.Reference

现在,如果我从main.rs中删除pub mod lib,一切都编译好了。

当你从主要删除pub mod lib;时,

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

这就是为什么它删除pub mod lib;时的工作原理

© www.soinside.com 2019 - 2024. All rights reserved.