Saltar a contenido

Configuración previa

Este proyecto se ha desarrollado en Windows 11 con Visual Studio Code.

La estructura principal es:

  • Makefile
  • main.cpp
  • src/include
  • src/lib
  • bin/SDL2.dll

El fichero main.cpp inicialmente contiene un Hola mundo en SDL que intenta crear una ventana vacía:

#include <iostream>
#include <SDL2/SDL.h>

const int WIDTH = 640, HEIGHT = 480;

int main(int argc, char *argv[])
{
    SDL_Init(SDL_INIT_EVERYTHING);

    SDL_Window *window = SDL_CreateWindow("Hello SDL WORLD", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, WIDTH, HEIGHT, SDL_WINDOW_ALLOW_HIGHDPI);

    if (NULL == window)
    {
        std::cout << "Could not create window: " << SDL_GetError() << std::endl;
        return 1;
    }

    SDL_Event windowEvent;

    while (true)
    {
        if (SDL_PollEvent(&windowEvent))
        {
            if (SDL_QUIT == windowEvent.type)
            {
                break;
            }
        }
    }

    SDL_DestroyWindow(window);
    SDL_Quit();

    return EXIT_SUCCESS;
}

Con el compiladir GNU GCC Compiler instalado en el equipo y la biblioteca SDL2 x86_64-w64-mingw32, con include/SDL2 y lib en src/ y bin/SDL2.dll donde el ejecutable bin/main.exe para su uso.

La compilación se realiza mediante la herramienta make, se puede instalar con Chocolatey:

choco install make

El Makefile contiene la vinculación necesaria de bibliotecas de SDL2:

build:
    g++ -I src/include -L src/lib -o bin/main *.cpp -lmingw32 -lSDL2main -lSDL2
run:
    ./bin/main.exe
clean:
    rm ./bin/main.exe

La compilación y ejecución es tan sencilla como ejecutar:

> make
> make run

Para facilitar la compilación y ejecución utilizo el complemento Code Runner de VSC y un comando personalizado definido en el .vscode/settings.json:

{
    "code-runner.customCommand": "make && ./bin/main.exe"
}

Ejecutamos con F1 > Run Custom Command y voilà:


Última edición: 05 de Junio de 2022