首页 > 解决方案 > 为什么在 Rust 2018 中使用模块时出现“找不到 crate”?

问题描述

我有一个lib.rs文件包含:

mod bindings {
    // ...
}

pub use bindings::*;

我从中得到的rustc是:

|  pub use bindings::*;
|          ^^^^^^^^ can't find crate

为什么 Rust 认为bindings是 crate 而不是模块?

标签: rust

解决方案


您似乎正在使用 2018 版的 Rust。自 2015 版(又名 Rust 1.0)以来,声明中的路径发生了一些变化。use声明后的路径use现在总是需要以 crate 名称开头,crate关键字表示 crate 的根,self表示当前模块或super表示父模块。因此,这两个use声明中的任何一个都应该起作用:

pub use self::bindings::*;

或者

pub use crate::bindings::*;

推荐阅读