< 返回版块

pader 发表于 2020-08-09 00:01

在网上看到的所有教程都说可以在子模块中使用 use::crate:: 来引用上级的模块,比如 src 下有 hello 目录,里有 mod.rs 和 world.rs, src 下还有个 base 目录,里面有 mod.rs 导出了一个 render(),在 world.rs 中使用 use crate::base::render; 编译时总报 unresolved import 说找不到这个 base,真是无解,在 main.rs 里是可以通过 mod base; 然后 use::base::render; 来使用的。。

我看了其它的 crate,他们在子模块中也有尽情的使用 use crate::,但我这里怎么就是不行呢。。真是郁闷 。。

评论区

写评论
Freddie Mercury 2020-08-09 10:06

不妨看下日报之前推送的这篇文章,看完这个基本就懂了 http://www.sheshbabu.com/posts/rust-module-system/

作者 pader 2020-08-09 00:11

终于知道了,原来如果创建的是一个 bin 必须在 main.rs 里 mod base; 才行,如果是 lib 则必须在 lib.rs 中 mod base;

1 共 2 条评论, 1 页