我想将一个箱子导入我的库,然后使用该箱子就好像它是我库中的模块一样。如果我这样做:
extern crate sdl2;
pub use sdl2;
这给了我一个错误,建议我使用sdl2::*
,但我不想将包中的所有名称拖到我的库中,我希望它们作为子模块进行寻址,例如:< / p>
my_library::sdl2::init()
我也试过这个:
pub extern crate sdl2;
编译,但我不知道它做了什么。它似乎并没有让我的图书馆公开访问箱子。
答案 0 :(得分:1)
您可以在use
和extern crate
中使用重命名:
extern crate sdl2 as sdl2_;
pub use sdl2_ as sdl2;
我个人发现如何在stdx
crate中进行此操作(但似乎已弃用/放弃,至少目前为止)。
答案 1 :(得分:0)
另一种解决方法:
extern crate sdl2;
mod sdl2 {
pub use ::sdl2::*;
}
应该工作 - 虽然未经测试。