1

我想将一个 crate 导入到我的库中,然后使用该 crate,就好像它是我库中的一个模块一样。如果我这样做:

extern crate sdl2;
pub use sdl2;

这给了我一个错误,建议我使用sdl2::*,但我不想将所有名称从板条箱拖到我的库中,我希望它们作为子模块来处理,例如:

my_library::sdl2::init()

我也试过这个:

pub extern crate sdl2;

编译,但我不知道它做了什么。不过,它似乎并没有让我的图书馆可以公开访问这个箱子。

4

2 回答 2

1

您可以在useand中使用重命名extern crate

extern crate sdl2 as sdl2_;
pub use sdl2_ as sdl2;

我个人发现了如何在stdxcrate 中做到这一点(不过,至少目前看来,这似乎已被弃用/放弃)。

于 2015-10-20T19:58:33.153 回答
0

另一种解决方法:

extern crate sdl2;
mod sdl2 {
    pub use ::sdl2::*;
}

应该可以工作-尽管未经测试。

于 2015-10-20T21:44:33.650 回答