我想在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
并没有解决问题
答案 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)
}