Module 如何将板条箱作为子模块导入?

Module 如何将板条箱作为子模块导入?,module,rust,rust-crates,Module,Rust,Rust Crates,我想将一个板条箱导入到我的库中,然后像使用库中的模块一样使用该板条箱。如果我这样做: extern crate sdl2; pub use sdl2; 这给了我一个错误,建议我使用sdl2::*,但我不想将板条箱中的所有名称拖到我的库中,我希望它们作为子模块进行寻址,例如: my_library::sdl2::init() 我也试过: pub extern crate sdl2; 它可以编译,但我不知道它是做什么的。但是,它似乎没有使板条箱可以从我的库中公开访问。您可以在use和外部板条箱

我想将一个板条箱导入到我的库中,然后像使用库中的模块一样使用该板条箱。如果我这样做:

extern crate sdl2;
pub use sdl2;
这给了我一个错误,建议我使用
sdl2::*
,但我不想将板条箱中的所有名称拖到我的库中,我希望它们作为子模块进行寻址,例如:

my_library::sdl2::init()
我也试过:

pub extern crate sdl2;

它可以编译,但我不知道它是做什么的。但是,它似乎没有使板条箱可以从我的库中公开访问。

您可以在
use
外部板条箱中使用重命名:

extern crate sdl2 as sdl2_;
pub use sdl2_ as sdl2;
我个人发现了如何在板条箱中完成这项工作(尽管目前看来已被弃用/废弃)。

另一个解决方法:

extern crate sdl2;
mod sdl2 {
    pub use ::sdl2::*;
}
应该是有效的,不过没有经过测试