Can't run SDL(2) on Ubuntu, No available video

2020-04-07 16:17发布

When i try to run my program i get the following error message:

SDL could not initialize! SDL_Error: No available video device

I have all the necessary SDL libraries installed and I'm currently running ubuntu 15.10

Here is my simple SDL code:

#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;
}

The SDL2 library are correctly linked to my C project.

1条回答
聊天终结者
2楼-- · 2020-04-07 16:34

This error message occurs when there is no available video driver built into SDL2 for your display system (X11, Mir, Wayland, RPI ...). Have you installed SDL2 package from Ubuntu repository or compiled from source ? When compiled from source, you should check that the supported video drivers are going to be built into the binary at the end of the "configure" step. Otherwise you need to install the required development headers (for X11 and Mir).

查看更多
登录 后发表回答