REUTILIZACIÓN DE CÓDIGO: Una arquitectura realmente reutilizable




Mostraremos a continuación una versión mejorada del programa anterior. Como se ha indicado, la solución inicial requería muchas modificaciones para reutilizar el código: se trataba de una propuesta de arquitectura, y no de un código reutilizable. Lo que sigue es un programa que permite definir la funcionalidad deseada sin modificar realmente el software ya construido, y que permanece invariable entre aplicaciones. El programa consta de los archivos siguientes: Comenzaremos por crear un makefile adecuado para la compilación del programa, y pasaremos después a estudiar los archivos que lo componen.

Un makefile para el programa
Un makefile es una colección de instrucciones que emplea la herramienta make para generar un programa ejecutable a partir del código fuente. Más exactamente, en el makefile se especifican reglas de dependencia (qué módulo depende de qué otro módulo) y reglas de construcción (cómo se generan los .o necesarios como entrada del linke para crear la aplicación ejecutable final). En este caso se tienen únicamente los módulos indicados en la lista anterior, lo cual da lugar a un makefile bastante breve:
#
# makefile general para compilar un programa
#
# Las variables terminadas en 64 deben utilizarse para
# efectuar compilaciones en 64 bits.
#
# Última modificación: 2009 09 06
#
OBJECTS=aplicacion.o cda.o main.o
OBJECTS64=aplicacion64.o cda64.o main64.o
UTILES=/usr/include/coti/utiles.o
UTILES64=/usr/include/utiles64.o
CC=gcc
PROGRAM=program
#PROGRAM=program.exe
RM=rm -rf
#RM=del

program: $(OBJECTS)
	$(CC) $(UTILES) $(OBJECTS) -o program


aplicacion.o: aplicacion.c
	$(CC) -c aplicacion.c


cda.o: cda.c
	$(CC) -c cda.c


main.o: main.c
	$(CC) -c main.c

clean:
	$(RM) *.o
	$(RM) $(PROGRAM)
Este makefile corresponde a la versión Unix del programa. Para compilarlo, una vez creados los cuatro archivos de código fuente mencionados, basta con acceder al directorio en que se encuentran los archivos y el makefile anterior, y teclear:
make
para conseguir la aplicación ejecutable. Si no hay errores, se construirá el programa ejecutable y aparecerá en pantalla algo similar a lo siguiente:

gcc -c aplicacion.c
gcc -c cda.c
gcc -c main.c
gcc /usr/include/coti/utiles.o aplicacion.o cda.o main.o -o program

Si hubiera errores, el compilador los señalará y, una vez corregidos, teclearemos una vez más:
make
hasta conseguir un programa ejecutable. Una vez conseguida una compilación sin errores, y puesto que nombre de la aplicación ejecutable es program , bastará teclear:
./program

Un proyecto para el programa
Es evidente que cada IDE requiere un método distinto, aunque parecido, para crear este programa. En todos ellos comenzaremos por crear un proyecto adecuado para una aplicación de consola, después se añadirán los archivos .c y .h y finalmente se copiarán de Internet los correspondientes bloques de código para pegarlos en su lugar. Después es preciso indicar al IDE la ruta de acceso al archivo utiles.h , si es que esta no se encuentra ya dentro de la ruta de la cadena de herramientas utilizada. Finalmente, se añade utiles.o a las instrucciones del enlazador, y el proyecto queda listo para su compilación y ejecución. Véanse las indicaciones multimedia pertinentes, mucho más claras que una descripción en forma de texto e imágenes fijas.
Los archivos de que consta este programa pueden verse en la página siguiente .