Avatar ·

Rust中的模块混淆:同一项目中的main.rs和lib.rs

大家好!我是Rust新手,当项目中同时有`main.rs`和`lib.rs`时,我完全搞不懂模块。 我有这样一个项目: ``` my_project/ ├── Cargo.toml ├── src/ │ ├── main.rs │ └── lib.rs ``` 在`lib.rs`中,我声明了一个`utils`模块: ```rust // lib.rs mod utils; pub fn greet() { println!("Hello from lib!"); } ``` 而在`utils.rs`中,我有一个`add`函数: ```rust // utils.rs pub fn add(a: i32, b: i32) -> i32 { a + b } ``` 在`main.rs`中,我尝试调用`lib.rs`中的`greet`函数和`utils`模块中的`add`函数: ```rust // main.rs fn main() { greet(); // 错误 println!("2 + 3 = {}", utils::add(2, 3)); // 也是错误 } ``` 编译器报错:"cannot find function `greet` in this scope" 和 "unresolved import `utils`"。我以为如果文件都在同一个`src`文件夹中,它们会自动互相可见。但事实并非如此。请告诉我,当同时有`main.rs`和`lib.rs`时,如何正确组织Rust中的模块。