Temario/Instalando libSDL

De Tutorial LibSDL

[editar] Instalación libSDL

Tabla de contenidos


[editar] Introducción

El proceso de instalación de la librería SDL no es traumático. Vamos a centrarnos en la instalación para sistemas operativos GNU/Linux y el compilador GCC ya que sobre ellos vamos a desarrollar el tutorial.

Vamos a instalar también todas las librerías adicionales que necesitaremos para el seguimiento del curso y así dar por cerrado la etapa de instalación de librerías.

[editar] Objetivos

  1. Instalar la librería SDL.
  2. Instalar las librerías adicionales de SDL.
  3. Comprobar la instalación de dichas librerías.

[editar] Instalando SDL

Hoy en día, mayoría de distribuciones GNU/Linux incluyen las bibliotecas SDL y todo lo necesario entre sus archivos de instalación o como repositorio adicional, por lo que recomendamos instalar los paquetes correspondientes (SDL-*) desde el gestor (Synaptic, Yast, etc). Este proceso nos instalará versiones de las bibliotecas precompiladas compatibles con nuestro sistema junto con todas sus dependencias, por lo que es la opción más sencilla y recomendable.

Pero puede ser que, por el contrario, no tengamos las bibliotecas en nuestros repositorios de confianza o simplemente prefiramos hacer una instalación personalizada y/u optimizada. En este caso, sólo recomendado para usuarios expertos, explicamos a continuación cómo compilarlas desde su código fuente con un sistema GNU/Linux.

[editar] Requisitos

Lo primero que necesitamos, incluso antes de SDL, es un compilador de C/C++. En nuestro caso hemos elegido el compilador GCC de GNU. Este requisito está cubierto en la mayoría de las distribuciones GNU/Linux. Para verificar si tenemos instalado el compilador y que versión estamos usando utilizamos el comando:

gcc --version

En nuestro caso obtenemos, además de información sobre la licencia del compilador, el siguiente mensaje:

gcc (GCC) 4.1.2

Esto significa que todo ha ido OK. Vamos a instalar libSDL y en el siguiente apartado trataremos el tema de las librerías adicionales.

[editar] Instalación

Lo primero que debemos hacer es descomprimir el tarball (fichero .tar preparado para ser compilado e instalado) que contiene la librería. Este fichero lo tienes disponible en la carpeta Instalación del material del tutorial en la subcarpeta libSDL. Se trata del fichero SDL-1.2.11.tar.gz.

Como podrás ver vamos a instalar la versión 1.2.11 que es la versión de SDL más actual cuando realizamos este tutorial. Para descomprimir este fichero tendrás que dar la siguiente orden tar que permite descomprimir ficheros con compresión gzip:

tar -xvzf SDL-1.2.11.tar.gz 

Esto creará una carpeta del mismo nombre del fichero que hemos descomprimido. En esta carpeta tienes un fichero README que te guía en la instalación de la librería según el sistema operativo que vayamos a utilizar. Los pasos de instalación más comunes son los siguientes.

Una vez situados en esta nueva carpeta, desde nuestro terminal, tecleamos las siguientes órdenes:

$> ./configure
$> make
$> make install

Así instalaremos la librería en un sistema operativo GNU/Linux que como ya sabes es el sistema operativo elegido a utilizar durante el tutorial. La última orden es imprescindible que la ejecutes como superusuario o no se podrá llevar a cabo la instalación.

Es importante para tu formación que conozcas que conseguimos con estas tres órdenes.

Con ./configure conseguimos que se cree un makefile adaptado a nuestro equipo. El script que contiene hace comprobaciones de dependencias, como el tipo de compilador que disponemos y la versión, para crear este archivo de tipo make.

Una vez finalizado este proceso deberemos de ejecutar la orden make. En este paso lo que hacemos es compilar la librería adaptada a nuestro sistema y arquitectura con lo que nos ahorraremos problemas de compatibilidad ya que estarán creadas específicamente para nuestro sistema.

El último paso y no menos importante, make install, deberemos de ejecutarlo como ROOT o superusuario, ya que la librería se va a copiar a un directorio cuyos permisos de escritura están limitados para la mayoría de los usuarios.

[editar] Instalando las librerías adicionales

El método de instalación de las librerías adicionales es análogo al de la propia SDL. Hay que tener en cuenta varios aspectos. Antes de instalar la librería SDL_image tenemos que tener que prever que necesita de ciertas bibliotecas auxiliares. Lo primero que vamos a hacer es proceder a su instalación.

Estas bibliotecas auxiliares son libpng, libjpeg y zlib. Dentro de la carpeta Instalacion/Librerias Adicionales del material puedes encontrar una subcarpeta llamada PreSDL_image donde están dichas librerías. Como puedes observar son tres ficheros .tar.gz. El proceso de instalación es idéntico al de libSDL:

  1. Descomprimimos con
tar -xvzf <nombre_fichero>
  1. Nos situamos en la carpeta donde se extrajo el contenido del fichero.
  2. Una vez en ella ejecutamos las órdenes
./configure; make; make install 

Repitiendo este proceso con los archivos de SDL_image, SDL_mixer, SDL_ttf y SDL_net conseguiremos tener todas las librerías auxiliares que vamos a necesitar instaladas.

Todas estas bibliotecas tienen detrás un soporte oficial. Seguramente cuando estés realizando este tutorial podrás encontrar en la página oficial de cada una de las librerías una versión mejorada de las mismas. Con las que te ofrecemos en el material del curso te será suficiente para poder completar el tutorial pero te recomiendo encarecidamente que a la hora de realizar tus proyectos cuentes con la última versión estable de estas librerías que seguramente, a parte de corregir algún fallo interno, se les haya dotado de una potencia mayor.

[editar] ¿Dónde se instalan las librerías? Localización

Como referencia, y aunque normalmente no es necesario saber estas localizaciones, vamos a presentar la localización de cada uno de los componentes de las librerías SDL en nuestro sistema GNU/Linux.

Localización de libSDL
LocalizaciónContenido
/usr/local/include/SDL Ficheros de cabecera
/usr/local/lib Librerías
/usr/local/bin Utilidad sdl-config
/usr/local/man Páginas de manuales

Si tienes algún problema de enlazado con las librerías lo primero que debes comprobar es si estas localizaciones se encuentran en la ruta donde busca las librerías el enlazador. En el caso de que no fuera así añadir la ruta a la variable definida con este fin que no es otra que LD_LIBRARY_PATH. Comprueba primero que estas librerías estén en estas localizaciones. De no ser así probablemente estén en el mismo directorio pero omitiendo la carpeta local. En este caso añade esta nueva ruta al LD_LIBRARY_PATH vuelve a realizar la prueba.

sdl-config es una utilidad de SDL que nos proporciona información sobre varios aspectos de esta librería. Podemos consultar la versión, los parámetros que debemos de pasar al compilador para que pueda hacer uso de la librería... En el apartado de compilación haremos uso de ella para que puedas aprovechar sus capacidades y conocer las posibilidades que ofrece.

[editar] Probando la instalación

Vamos a probar si hemos instalado correctamente las librerías. La primera prueba a realizar es la comprobación de que la instalación de la biblioteca SDL ha sido efectuada correctamente. Para ello utilizaremos el comando sdl-config.

Si introducimos en una terminal la orden

sdl-config --version

el sistema devolverá la versión de la librería SDL instalada. En mi caso, que es el del material del tutorial, devuelve la versión 1.2.11. Si nos devuelve el valor correspondiente a la versión instalada es que todo habrá funcionado correctamente.

En el caso de que el sistema no encuentre la orden podemos tener dos problemas. El primero y más lógico es que tengamos que revisar la instalación de SDL. El segundo y menos frecuente es que no tengamos el directorio /usr/local/bin en el PATH del sistema por lo que tendremos que acudir a dicha carpeta para ejecutar el programa.

La segunda prueba que vamos a realizar consiste en coger un ejemplo sintácticamente correcto y compilarlo para comprobar si enlaza bien contra las librerías que hemos instalado. El ejemplo que vamos a probar es el siguiente:


// Listado: test1.c

// No te preocupes por no entender este código
// Sólo compílalo para comprobar que enlaza correctamente

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


int main() {

   if(SDL_Init(SDL_INIT_VIDEO) < 0) {
       fprintf(stderr, "No podemos inicializar SDL: %s\n", SDL_GetError());
       exit(1);
   }
   else {
       fprintf(stdout, "Hemos inicializado SDL\n");
       atexit(SDL_Quit);
   }

   return 0;
}

Para compilar el ejemplo debes de introducir la siguiente orden en la consola del sistema:

g++ -o test test1.c -lSDL

Con lo que conseguiremos crear un ejecutable test si la compilación fue correcta. En el siguiente capítulo estudiaremos como compilar un programa que utilice las librerías auxiliares de SDL. Por el momento nos vamos a conformar con enlazar estas librerías con el programa de ejemplo que nos servirá para comprobar si han sido instaladas correctamente. Para enlazarlas y crear el ejecutable introducimos la siguiente orden:

g++ -o test test1.c -lSDL -lSDL_image -lSDL_ttf -lSDL_mixer -lSDL_net

Con esta orden indicamos al compilador que enlace las librerías adicionales que hemos instalado. Si no recibimos ningún mensaje de error es que la compilación se habrá realizado correctamente. En cada uno de los capítulos tendremos que compilar ejemplos pero crearemos makefiles para que no se convierta la compilación en una tarea tediosa y repetitiva.

[editar] Recopilando

En este capítulo hemos realizado la tarea de instalar las librerías para preparar nuestro entorno de trabajo. Una vez instaladas hemos realizado una prueba con un pequeño ejemplo para comprobar que todo se realizó correctamente.

Ahora ya podemos avanzar en nuestro tutorial y compilar los ejemplos que se nos proporciona con el material.

Herramientas personales