如何包含sdl2

时间:2018-04-28 11:24:17

标签: rust rust-cargo

我想在Rust中使用sdl2包。

我的项目文件夹:

├── Cargo.toml
├── src
    ├── keyboard.rs
    └── main.rs

到目前为止,我做了以下事情: 在我的货物中添加了sdl2行,其中包含外部依赖项: Cargo.toml

// ...
[dependencies]
    sdl2 = "0.31"

要在sdl2中使用keyboard.rs,我添加了以下内容:

extern crate sdl2;
use sdl2::keyboard::Keycode;

但是当我尝试编译(cargo build)时,我收到以下错误:

error[E0433]: failed to resolve. Did you mean `keyboard::sdl2`?
 --> src/keyboard.rs:4:5
  |
4 | use sdl2::keyboard::Keycode;
  |     ^^^^ Did you mean `keyboard::sdl2`?

error[E0433]: failed to resolve. Did you mean `keyboard::sdl2`?

我做错了什么?是否可以在除main.rs文件之外的其他文件中加载extern crates?

编辑1:

extern crate sdl2;添加到我的main.rs并没有解决问题

1 个答案:

答案 0 :(得分:0)

如上所述,我需要在root上声明extern依赖项。使用lib.rs文件时,必须在那里写入:

lib.rs

extern crate sdl2;
//...

为了在它中使用它 keyboard.rs档案:

use sdl2::keyboard::Scancode;
use sdl2;
// example code below
fn is_a_pressed(e: &sdl2::EventPump) -> bool {
    e.keyboard_state().is_scancode_pressed(Scancode::A)
}