You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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=:0
  • export SDL_VIDEODRIVER=x11
  • 跟随第三方SDL2教程操作,报错完全一致

临时解决方法

参考SDL官方安装文档本地自行编译SDL2源码后,问题完全解决。

问题咨询

作为SDL新手,想确认该问题是操作失误导致,还是属于Ubuntu官方SDL2安装包的bug?


内容的提问来源于stack exchange,提问作者professional dummy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 18:54:00