Ejemplo simple de uso de make y makefile

Ejemplo simple de makefile

El makefile se usa en conjunto con la herramienta make para construir y crear programas. Uno de sus usos más básicos es el de compilar un programa en C.

En este post te mostraré un ejemplo muy simple de un makefile en C que simplemente va a compilar y ejecutar un programa.

Realmente será un ejemplo muy sencillo de makefile, pero que te servirá en caso de que sea obligatorio usar el makefile.

¿Para qué sirve el makefile?

Este archivo indica cómo construir un programa. De hecho, si usas Linux. seguramente alguna vez te tocó compilar e instalar un programa por ti mismo, en donde descargaste el código y ejecutaste make.

Pues bien, make es como un script que crea e instala el software. Pero no me creas mucho; porque make es mucho más que eso.

Cualquier proyecto decente y complejo usa make, ya que esta herramienta permite también compilar solo aquellos archivos que son necesarios y que han cambiado.

Por ejemplo, si tenemos un gran proyecto que requiere de varios archivos al compilar y nosotros modificamos solo uno, make se encargará de revisar las dependencias y compilar solo lo necesario. Y el makefile se encarga de indicar la receta de cómo construir ese software.

Para una referencia completa de make puedes usar Google o ver este tutorial. Yo te mostraré un ejemplo simple que apenas y muestra lo que puede hacer make.

Ejemplo de makefile

Sin más preámbulos te dejo un ejemplo de makefile:

En la línea 1 indicamos el compilador. Vamos a usar gcc. En la segunda línea indicamos banderas, la bandera Wall reportará varios errores y nos dará advertencias de malas prácticas o posibles errores.

Después en la línea 3 indicamos que vamos a crear a main, por lo que requerimos al archivo main.c

En la línea 4 compilamos ese archivo con el compilador pasándole las banderas, el nombre del archivo a compilar y el nombre de salida.

Ya en la línea 5 simplemente ejecutamos el programa. Así que básicamente estamos haciendo un script que compila y ejecuta nuestro programa.

Ahora resta ejecutar make en el directorio en donde se encuentren tanto main.c como makefile y el programa se va a ejecutar. Te mostraré el código de C a continuación.

Uso de make con makefile

El código para este ejemplo queda así. Dejé una variable sin usar a propósito para que veas la bandera de advertencias.

El propósito de este programa es mostrar un mensaje en pantalla. Ahora ejecuto make y la salida es la de la imagen:

Ejemplo simple de uso de make y makefile
Ejemplo simple de uso de make y makefile

Nota: yo uso Windows, en donde también se puede instalar make.

Fíjate en que los comandos que coloqué en el archivo se ejecutan tal y como si los hubiera escrito, pero ahora es más simple ya que cada que quiera probar, solo debo escribir make.

Anteriormente tendría que escribir gcc -o main main.c y luego ejecutar main, esto cada vez que hiciera un cambio.

Por otro lado, el compilador me advirtió de la variable no usada (la bandera sirve para eso y para muchas cosas más) pero incluso así lo compiló y ejecutó, ya que es una advertencia, no un error.

De este modo puedes usar make en tus proyectos de C. Como te dije, este es un ejemplo de makefile muy simple, pero que funciona y te da una pequeña introducción. Además, make sirve incluso con otros lenguajes de programación y miles de tareas más.

Te dejo el código de ejemplo y el makefile en mi GitHub. También puedes leer sobre C en mi blog.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *