Нет доступного видеоустройства в SDL

Библиотека SDL-2, которую я использую, была скомпилирована из исходного кода.

Всякий раз, когда я пытаюсь запустить любую программу, использующую SDL-2 на X11, я получаю эту ошибку:

SDL_Init Error: No available video device

Я запускаю эти программы через командную строку на Linux Mint 19.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

person German Empire Ball    schedule 24.04.2020    source источник
comment
У меня была аналогичная проблема, когда у меня не был установлен пакет X11 dev. Кроме того, зачем компилировать SDL2 из исходников?   -  person HolyBlackCat    schedule 24.04.2020


Ответы (1)


Похоже, в вашей сборке SDL отсутствует серверная часть X11.

Mint выглядит достаточно похоже на Debian, поэтому sudo apt build-dep libsdl2 должен загрузить необходимые -dev пакеты. Затем вы можете повторно запустить ./configure и переустановить/переустановить SDL.

Убедитесь, что в строке Video drivers сводки configure есть нужные вам серверные части.

Если метод build-dep слишком волнистый, тогда docs/README-linux.md имеет (довольно старый) детализированный список пакетов -dev:

================================================================================
Build Dependencies
================================================================================

Ubuntu 13.04, all available features enabled:

sudo apt-get install build-essential mercurial make cmake autoconf automake \
libtool libasound2-dev libpulse-dev libaudio-dev libx11-dev libxext-dev \
libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libxxf86vm-dev \
libxss-dev libgl1-mesa-dev libesd0-dev libdbus-1-dev libudev-dev \
libgles1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev libibus-1.0-dev \
fcitx-libs-dev libsamplerate0-dev libsndio-dev

Ubuntu 16.04+ can also add "libwayland-dev libxkbcommon-dev wayland-protocols"
to that command line for Wayland support.

NOTES:
- This includes all the audio targets except arts, because Ubuntu pulled the 
  artsc0-dev package, but in theory SDL still supports it.
- libsamplerate0-dev lets SDL optionally link to libresamplerate at runtime
  for higher-quality audio resampling. SDL will work without it if the library
  is missing, so it's safe to build in support even if the end user doesn't
  have this library installed.
- DirectFB isn't included because the configure script (currently) fails to find
  it at all. You can do "sudo apt-get install libdirectfb-dev" and fix the 
  configure script to include DirectFB support. Send patches.  :)
person genpfault    schedule 24.04.2020
comment
Программы теперь работают без ошибок. Спасибо @genpfault! - person German Empire Ball; 24.04.2020