rust - 如何包含 sdl2

标签 rust rust-cargo

我想在 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/

相关文章:

build - 如何让 Cargo 执行构建脚本并同时使用目标特定的链接器?

module - 在 Rust 中公开嵌套模块

rust - 如何让我的 Rust 程序链接到另一个 glibc?

rust - 是否可以在 Rust for 循环中声明变量的类型?

rust - 为什么不能在同一结构中存储值和对该值的引用?

Rust 找不到 crate

tree - A* : open and close lists in Rust

assembly - 如何从 Cargo 构建中获取 assembly 输出?

rust - 使用 main.rs 文件从本地 crate 导入时未解析的导入

从 Rust 调用时,Java JNI 在退出时崩溃