Tutorial de MakefileManual de estudio

Published on 2023-04-20 00:10:05 · 中文 · English · بالعربية · हिंदीName · 日本語 · Русский язык · 中文繁體

Makefile es una herramienta de creación de programas que se ejecuta en Unix, Linux y sus sabores. Ayuda a simplificar la construcción de ejecutables de programas que pueden requerir varios módulos. Para determinar cómo se debe compilar o recompilar el módulo, make necesita la ayuda de un makefile definido por el usuario. Este tutorial mejorará su comprensión de la estructura y utilidad de makefile.
Compilar archivos de código fuente puede ser agotador, especialmente cuando tiene que incluir varios archivos de origen y escribir un comando de compilación cada vez que necesite compilar. Makefile es la solución para simplificar esta tarea.
Los makefiles son archivos con formato especial que ayudan a automatizar la construcción y gestión de proyectos.
Por ejemplo, supongamos que tenemos los siguientes archivos de origen.
principal.cpp Hola.cpp factorial.cpp funciones.h
principal.cpp
Aquí está el código para el archivo fuente principal.cpp-
#include <iostream>
using namespace std;
#include "functions.h"
int main(){
   print_hello();
   cout << endl;
   cout << "The factorial of 5 is " << factorial(5) << endl;
   return 0;
}
Hola.cpp
El código que se proporciona a continuación es para hola.cpp archivos fuente-
#include <iostream>
using namespace std;
#include "functions.h"
void print_hello(){
   cout << "Hello World!";
}
factorial.cpp
El código para factorial.cpp es el siguiente-
#include "functions.h"
int factorial(int n){
   
   if(n!=1){
      return(n * factorial(n-1));
   } else return 1;
}
funciones.h
Aquí está el código para fnctions.h-
void print_hello();
int factorial(int n);
Una manera fácil de compilar el archivo y obtener el ejecutable es ejecutar el comando-
gcc  main.cpp hello.cpp factorial.cpp-o hello
Este comando genera Hola binario. En este ejemplo, solo tenemos cuatro archivos y conocemos el orden de las llamadas a la función. Por lo tanto, es factible escribir el comando anterior y preparar el binario final.
Sin embargo, para proyectos grandes con miles de archivos de código fuente, mantener compilaciones binarias se vuelve difícil.
El comando make permite administrar programas grandes o grupos de programas. Cuando comience a escribir programas grandes, notará que volver a compilar programas grandes lleva más tiempo que volver a compilar programas cortos. Además, notará que generalmente solo maneja una pequeña parte del programa, como una sola función, mientras que la mayor parte del resto del programa no cambia.
En las siguientes secciones, veremos cómo preparar un makefile para nuestro proyecto.