Creando una plantilla para librerías
Como podremos tener mas de una librería interna lo mejor es que creemos una plantilla que nos permita agilizar la creación de librerías. El proceso es muy similar al que seguimos para crear las plantillas de proyectos en esta entrada solo que en vez de un ejecutable crearemos una librería estática.La librería la crearemos en una carpeta a la que llamaremos InternalLib y dentro de esa carpeta crearemos otra llamada _InternalLibTemplate. Dentro de esta última también creamos dos carpetas source y include para contener los futuros archivos de la librería.
Lo primero es abrir el VS2010 y elegir Archivo > Nuevo > Proyecto… (File > New > Project…)
Aparece el dialogo de la imagen superior. Hay elegimos tipo de proyecto Win32 > Proyecto Win32 (Win32 > Win32 Project). Ponemos de Nombre (Name) build, elegimos la carpeta creada anteriormente como Localización (Location) y activamos “Crear directorio para solución” (Create directory for solution) y finalmente Aceptar (OK).
Aparece el siguiente dialogo:
Elegimos la opción de Configuración (Application Setting), como tipo de aplicación elegimos Librería estática (Static Library). Quitamos la selección de Cabecera Precompilada (Precompiled Header) y Pulsamos Finalizar (Finish).
Configuración básica de la plantilla
La configuración de la plantilla será muy sencilla. Como no todas las librerías que hagamos tendrán que estar vinculadas con SFML 2.0, no necesitamos más que configurar donde queremos que salga la librería ya cocinada.Como veis en la imagen anterior, he cambiado, para todas las configuraciones, el directorio de salida ha ..\lib\, de forma que la librería final esta en un sitio limpio, y como directorio intermedio he usado ..\obj\$(Configuration)\, con lo que los archivos que luego no sirven para nada están también localizados.
Una última configuración es hacer que la versión de DEBUG tenga un nombre distinto.NOTA
Una librería una vez finalizada y comprobada se puede distribuir simplemente pasando los archivos de cabecera y el resultado final de la compilación. Normalmente solo se “publica” la versión RELEASE.
Extendiendo SFML 2.0
Una vez creada nuestra plantilla, vamos ha hacer una copia y ha cambiar el nombre de la carpeta, para crear nuestra librería interna principal que será una extensión de las funcionalidades de SFML 2.0Así copiamos toda la carpeta _InternalLibTemplate al mismo directorio y le cambiamos el nombre por SFMLX. Abrimos la solución de la nueva carpeta para realizar algunos cambios.
Lo primero será seleccionar el proyecto en el exploración de soluciones y pulsando F2 cambiar el nombre de build a SFMLX, para que las librerías que genere tengan ese nombre.
Tenemos que añadir un archivo fuente para que aparezcan todas las propiedades del proyecto. Así que pulsando con el botón derecho del ratón sobre la carpeta archivos fuente (source files) seleccionamos añadir > nuevo elemento… (Add… > New Item…) y aparecerá el dialogo que se muestra arriba.
Ahí seleccionamos Archivo C++ (C++ File), cambiamos el nombre por main (no importa el nombre, este archivo lo borraremos mas adelante) y cambiamos la ubicación a la carpeta source que creamos anteriormente.
Yendo a las propiedades del proyecto como hicimos al principio, ahora aparece las opciones de C/C++. Primero debemos poner la configuración a todas las configuraciones para que los cambios se apliquen a debug y release. Seleccionando C/C++ y seleccionando <editar…> del desplegable de Directorios de Inclusión Adicionales (Additional Include Directory) aparece otro dialogo en donde introduciremos dos nuevas direcciones:
- ..\include para que incluya los archivos de cabecera propios del proyecto
- ..\..\..\ExternalLib\SFML2\include para que incluya los archivos de SFML2
Gracias por vuestro tiempo. No vemos en la siguiente entrada.
1 comentario:
Hola David, te agradezco por tus artículos, están muy buenos!!
Publicar un comentario