Ubuntu 20.04环境下SDL2初始化报错No available video device如何解决?
Ubuntu 20.04 SDL2初始化失败问题说明
我在64位Ubuntu 20.04系统上验证SDL2安装状态时遇到初始化失败问题,报错提示为Unable to initialise sdl2,运行测试代码时返回的底层错误为No available video device。
测试代码
#include <iostream> #include <SDL2/SDL.h> #include <SDL2/SDL_image.h> #include <SDL2/SDL_timer.h> bool initSDL() { if (SDL_Init(SDL_INIT_EVERYTHING) != 0) { std::cout << "Failed to init sdl: " << SDL_GetError() << std::endl; return false; } if (IMG_Init(IMG_INIT_PNG) != IMG_INIT_PNG) { std::cout << "Failed to init sdl_image: " << IMG_GetError() << std::endl; return false; } return true; } int main(int argc, char *argv[]) { std::cout << "Code Starting..." << std::endl; initSDL(); int winX = 900, winY = 600; std::cout << "Code Exited Properly." << std::endl; return 0; }
程序运行输出
Code Starting... Failed to init sdl: No available video device Code Exited Properly.
编译运行命令
gcc -c src/*.cpp -I include -m64 -lstdc++ -std=c++11 gcc *.o -o out/main -lSDL2main -lSDL2 -lSDL2_image -m64 -lstdc++ -std=c++11 ./out/main
项目目录结构
主目录 'sdl_hello_world' ->src -> 存放 'main.cpp' ->out -> 存放编译生成的 'main' 可执行文件
已尝试的无效解决方案
export DISPLAY=:0export SDL_VIDEODRIVER=x11- 跟随第三方SDL2教程操作,报错完全一致
临时解决方法
参考SDL官方安装文档本地自行编译SDL2源码后,问题完全解决。
问题咨询
作为SDL新手,想确认该问题是操作失误导致,还是属于Ubuntu官方SDL2安装包的bug?
内容的提问来源于stack exchange,提问作者professional dummy
相关产品推荐
相关产品推荐

