A Apéndice A Instalación de las librerías en linux

Aunque cuando escribo esto ya está disponible la versión 3 de SDL, seguiremos trabajando con la versión 2, ya que los ejemplos de este curso sólo funcionan en esa versión.

Dependencias

SDL2 tiene algunas dependencias, que será necesario tener instaladas antes de compilar las librerías. Consultar el documento correspondiente en:

https://github.com/libsdl-org/SDL/blob/main/docs/README-linux.md

Si además queremos repoducir ficheros midi, en algunos casos también será necesario instalar otros paquetes:

apt install timidity
apt-get install freepats

SDL2

Descargar la versión desarrollo, y descomprimirla en una carpeta SDL.

git clone https://github.com/libsdl-org/SDL.git -b SDL2
cd SDL
mkdir build
cd build
../configure
make
sudo make install

En linux las librerías se almacenan en la ruta "/usr/loacal/lib", y los ficheros de cabecera en "/usr/local/include". Hay que tener esto en cuenta cuando creemos nuestros proyectos.

SDL_image

Descargar la versión desarrollo, y descomprimirla en una carpeta SDL_image.

git clone https://github.com/libsdl-org/SDL_image.git -b SDL2
cmake -S . -B build
cmake --build build

Cuando se usa cmake hay que copiar los ficheros de cancera y de librería manualmente:

cd include
sudo cp SDL_image.h /usr/local/include/SDL2/
cd ..
cd build
sudo cp libSDL2_image* /usr/local/lib/

SDL_mixer

git clone https://github.com/libsdl-org/SDL_mixer.git -b SDL2
cd SDL_mixer
mkdir build
cd build
../configure
make
sudo make install

SDL_ttf

git clone https://github.com/libsdl-org/SDL_ttf.git -b SDL2
cd SDL_ttf
cmake -S . -B build
cmake --build build

Cuando se usa cmake hay que copiar los ficheros de cancera y de librería manualmente:

sudo cp SDL_ttf.h /usr/local/include/SDL2/
cd build
sudo cp libSDL2_ttf* /usr/local/lib/

Configurar Code::Blocks

Para usar estas librerías en nuestros proyectos de Code::Blocks tenemos que crear el proyecto usando la categoría "SDL2 project".

Esto añade la opción `sdl2-config --libs` a las opciones del compilador, que define las rutas de las librerías y de los ficheros de cabecera.

Esta opción usa las librerías de enlace dinámico, si prefieres usar las de enlace estático hay que sustituir "--libs" por "--static-libs".

Si además queremos usar alguna de las librerías "SDL_image", "SDL_mixer" o "SDL_ttf", habrá que añadirlas en "link libraries".

Opciones de construcción, enlazador
Añadir librerías "build options"