¿Cómo hago un makefile? (C++)

Muy fácil.

OPTS = -Wall -ggdb

LIBS =
OBJS = archivo1.o archivo_main.o

ejecutable: $(OBJS)
	g++ $(OPTS) $(OBJS) -o ejecutable $(LIBS)
archivo1.o: archivo1.cc archivo.h
	g++ $(OPTS) -c archivo1.cc -o archivo1.o
archivo2_main.o: archivo_main.cc archivo.h
	g++ $(OPTS) -c archivo_main.cc -o archivo_main.o

clean:
	rm *.o -rf
	clear

Primero creamos las etiquetas OPTS (options), LIBS (libraries), OBJS (objects). La etiqueta options llevará las opciones que usamos a la hora de compilar, en este caso he puesto -Wall para mostrar avisos y -ggdb para pasarlo por el GDB si es necesario. En libraries no he puesto nada porque no he usado ninguna librería de compilación y en objects he puesto los archivos objetos necesarios para la compilación final del programa.

El cuerpo del makefile hay que leerlo de abajo hacia arriba estableciéndose una estructura de requisitos, siendo su objetivo el de conseguir los archivos objetos necesarios para la compilación final. De este modo para crear el archivo “archivo2_main.o” son necesarios los archivos “archivo_main.cc” y “archivo.h” y para crear el “archivo1.o” necesitamos “archivo1.cc” y “archivo.h”, de este modo ya tenemos “archivo1.o” y “archivo_main.o” por lo que podemos crear el “ejecutable” teniendo como requisito $(OBJS) e introduciendo en su línea de compilación las $(LIBS).

De este modo podemos compilar un pequeño programita de 3 archivos en un único ejecutable śolamente con escribir en la terminal “make”. Por otra parte si queréis borrar los objects debéis escribir “make clean”. Y listo. Espero que os sirva ^^.

0 Responses to “¿Cómo hago un makefile? (C++)”


  1. No Comments

Leave a Reply