无法在Ubuntu上运行SDL(2),没有可用的视频设备。

4
当我尝试运行我的程序时,出现以下错误信息:
SDL could not initialize! SDL_Error: No available video device

我已经安装了所有必要的SDL库,并且当前正在运行ubuntu 15.10。

这是我的简单SDL代码:

#include <stdio.h>
#include "SDL2/SDL.h"

//Screen dimension constants
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;

int main(int argc, char* argv[])
{
    //The window we'll be rendering to
    SDL_Window* window = NULL;

    //The surface contained by the window
    SDL_Surface* screenSurface = NULL;

    //Initialize SDL
    if( SDL_Init( SDL_INIT_VIDEO ) < 0 )
    {
        printf("SDL could not initialize! SDL_Error: %s\n", SDL_GetError());
    }
    else
    {
        //Create window
        window = SDL_CreateWindow("SDL Tutorial",SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH,
                                      SCREEN_HEIGHT, SDL_WINDOW_SHOWN);
        if (window == NULL) {
            printf("Window could not be created! SDL_Error: %s\n", SDL_GetError());
        }
    }

    return 0;
}

SDL2库已正确链接到我的C项目中。

你能让它工作了吗?你是在Eclipse中运行它吗?我有一个非常类似的问题,但我注意到我可以在终端上无问题地运行可执行文件。 - kabdulla
如果您正在Eclipse中运行,很有可能您遇到了我遇到的同样问题。请参见此处发布的答案:http://stackoverflow.com/questions/43220318/c-executable-runs-from-command-line-but-not-from-eclipse。 - kabdulla
1个回答

5

当你的显示系统(X11,Mir,Wayland,RPI ...)中没有可用的SDL2视频驱动程序时,就会出现此错误消息。

你是否从Ubuntu存储库安装了SDL2包或从源代码编译?如果从源代码编译,则应检查在“配置”步骤结束时支持的视频驱动程序是否将构建到二进制文件中。否则,您需要安装所需的开发头文件(适用于X11和Mir)。


当我使用Conan来管理我的依赖项时,我该如何做到这一点? - Johannes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接