Rust 使用同级时如何理解lib.rs中的mod xxx
在许多帖子中,正如人们建议在Rust 使用同级时如何理解lib.rs中的mod xxx,rust,Rust,在许多帖子中,正如人们建议在lib.rs中使用mod xxx或者甚至在lib.rs中使用mod xxx一样,当它们在根目录下处于同一级别时,我也尝试过 src/lib.rs: pub-mod打印机; pub-mod屏幕; src/printer.rs: pub fn说(a:&str){ println!(“打印机说{}”,a); } src/screen.rs: 使用板条箱::打印机; 酒吧fn说(b:&str){ 打印机::说(“嗨”); println!(“屏幕显示{}”,b); }
lib.rs
中使用mod xxx
或者甚至在lib.rs
中使用mod xxx
一样,当它们在根目录下处于同一级别时,我也尝试过
src/lib.rs
:
pub-mod打印机;
pub-mod屏幕;
src/printer.rs
:
pub fn说(a:&str){
println!(“打印机说{}”,a);
}
src/screen.rs
:
使用板条箱::打印机;
酒吧fn说(b:&str){
打印机::说(“嗨”);
println!(“屏幕显示{}”,b);
}
src/main.rs
mod打印机;
mod屏幕;
fn main(){
打印机::说(“嗨”);
屏幕:说“嗨”;
}
上述方法有效,直到我尝试了不同的lib.rs
,我发现,当lib.rs
是
pub mod screen;
错误是:
error[E0432]: unresolved import `crate::printer`
--> src\screen.rs:1:5
|
1 | use crate::printer;
| ^^^^^^^^^^^^^^ no `printer` in the root
实际上,
lib.rs
既可以有mod屏幕,也可以没有打印机,也可以只有打印机;如果它不是唯一的屏幕。此项目是库还是可执行文件?从技术上讲,两者都可以,但这通常不是Rust的新手在添加lib.rs
和main.rs
时想要的。我在学习柴油机演示。它有1个二进制文件,3个用于库。但这是为了2015年。我想把它改成Rust 2018,却被卡在了路径>。