我想在 Rust 中使用 sdl2
包。
我的项目文件夹:
├── Cargo.toml
├── src
├── keyboard.rs
└── main.rs
到目前为止,我做了以下事情:
在我的 Cargo 中添加了 sdl2
行,其中处理了外部依赖项:
Cargo.toml
:
// ...
[dependencies]
sdl2 = "0.31"
要在我的 keyboard.rs
中使用 sdl2
,我添加了以下几行:
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 crate?
编辑 1:
将 extern crate sdl2;
添加到我的 main.rs
没有解决问题
最佳答案
如上所述,我需要在根目录下声明外部依赖。当使用 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)
}
关于rust - 如何包含 sdl2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50076002/