如何包含来自同一项目中另一个文件的模块?

按照本指南,我创建了一个货运项目。


src/main.rs


fn main() {

    hello::print_hello();

}


mod hello {

    pub fn print_hello() {

        println!("Hello, world!");

    }

}

我运行使用


cargo build && cargo run

并且编译没有错误。现在,我试图将主模块一分为二,但无法弄清楚如何从另一个文件中包含一个模块。


我的项目树看起来像这样


├── src

    ├── hello.rs

    └── main.rs

以及文件的内容:


src/main.rs


use hello;


fn main() {

    hello::print_hello();

}

src/hello.rs


mod hello {

    pub fn print_hello() {

        println!("Hello, world!");

    }

}

当我编译它cargo build,我得到


error[E0432]: unresolved import `hello`

 --> src/main.rs:1:5

  |

1 | use hello;

  |     ^^^^^ no `hello` external crate

我试图遵循编译器的建议,并修改main.rs为:


#![feature(globs)]


extern crate hello;


use hello::*;


fn main() {

    hello::print_hello();

}

但这仍然无济于事,现在我明白了:


error[E0463]: can't find crate for `hello`

 --> src/main.rs:3:1

  |

3 | extern crate hello;

  | ^^^^^^^^^^^^^^^^^^^ can't find crate

是否有一个简单的示例,说明如何将当前项目中的一个模块包含到项目的主文件中?


另外,我正在运行Rust 1.37.0。


四季花海
浏览 833回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP