我使用的SDL-2库是从源代码编译的。
每当我试图在X11上运行任何使用SDL-2的程序时,都会遇到以下错误:
SDL_Init Error: No available video device我正在LinuxMint19.3 Tricia上通过命令行运行这些程序。
以下是./configure摘要:
SDL2 Configure Summary:
Building Shared Libraries
Building Static Libraries
Enabled modules : atomic audio video render events joystick haptic sensor power filesystem threads timers file loadso cpuinfo assembly
Assembly Math : mmx 3dnow sse sse2 sse3
Audio drivers : disk dummy oss
Video drivers : dummy opengl_es2 vulkan
Input drivers : linuxev linuxkd
Using libsamplerate : NO
Using libudev : NO
Using dbus : NO
Using ime : YES
Using ibus : NO
Using fcitx : NO发布于 2020-04-24 17:35:01
看起来你的SDL构建缺少了X11后端。
薄荷看上去足够Debian,以至于sudo apt build-dep libsdl2应该使用所需的-dev包。然后可以重新运行./configure &重新构建/重新安装SDL。
确保再次检查Video drivers摘要中的configure行是否有您感兴趣使用的后端。
如果build-dep方法太过手工波动,那么docs/README-linux.md有一个(有点旧的)逐项的-dev包列表:
================================================================================
构建依赖项================================================================================ Ubuntu13.04启用的所有可用特性: sudo apt-get install -必要的mercurial make cmake \ libtool \libgles1 dev libgl1 dev libudev dev libxext 11-dev libxext-dev \ libxrandr-dev libxcursor-dev libxinerama dev libxxf86vm-dev \ libxss-dev libgl1 mesa-dev libesd0 dev-libdbus-1 dev- libudev-dev \ libgles1-mesa-dev libgl1 1-a-libibus- 16.04+开发Wayland -协议“的命令行为Wayland支持。注意:-这包括除了arts之外的所有音频目标,因为Ubuntu提取了arts 0-dev包,但理论上SDL仍然支持它。libsamplerate0-dev允许SDL在运行时可选择地链接到libres放,以获得更高质量的音频重采样。如果缺少该库,SDL将在没有SDL的情况下工作,因此即使最终用户没有安装此库,也可以安全地进行支持构建。没有包含DirectFB,因为配置脚本(当前)根本找不到它。您可以执行"sudo apt install libdirectfb“并修复配置脚本以包含DirectFB支持。发送补丁。::)
https://stackoverflow.com/questions/61398955
复制相似问题