【Linux】 —— makefile

1. ¿Qué es un archivo MAKE?

En un proyecto grande, los archivos de origen del proyecto no se cuentan. Se colocan en varios directorios por tipo, función y módulo. El archivo MAKE define una serie de reglas para especificar qué archivos deben compilarse primero y qué archivos deben compilarse después. , Qué archivos deben recompilarse, incluso para operaciones funcionales más complejas.

La comprensión popular es similar al IDE en Windows.

Segundo, aprovecha la ventaja y crea el comando

El beneficio de makefile es: " compilación automática ", una vez escrito, solo se necesita un comando make, todo el proyecto se compila de forma completamente automática, lo que mejora en gran medida la eficiencia del desarrollo de software

Por ejemplo: nuestro proyecto tiene 8 archivos C y 3 archivos de encabezado, tenemos que escribir un Makefile para decirle al comando make cómo compilar y vincular estos archivos. Nuestras reglas son:

  1. Si este proyecto no se ha compilado , todos nuestros archivos C deben compilarse y vincularse.
  2. Si se modifican algunos archivos C de este proyecto , solo compilamos los archivos C modificados y vinculamos el programa de destino.
  3. Si se cambia el archivo de encabezado de este proyecto, entonces necesitamos compilar el archivo C que hace referencia a estos archivos de encabezado y vincular el programa de destino.

Tres, contenido de archivo MAKE

Para explicar su principio de funcionamiento, primero hablamos sobre la forma en que solíamos compilar archivos.
Primero, creamos múltiples archivos .c y archivos .h en la misma carpeta. De la siguiente manera:
Inserte la descripción de la imagen aquí
Normalmente, cuando compilamos archivos,
Inserte la descripción de la imagen aquí
escribiremos archivos .c uno por uno de la siguiente manera , pero ¿qué pasa si tenemos demasiados archivos? Además, si después de la compilación, modificamos el archivo sub.c nuevamente, y luego volvemos a compilar, si solo compila el archivo sub.c, esto es incorrecto, como se muestra en la siguiente figura:
Inserte la descripción de la imagen aquí
todos los archivos .c Es correcto compilar nuevamente. De esta manera, parece que tenemos una forma incorrecta de compilar el archivo. Aquí presentamos el archivo MAKE. Con él, en el modo predeterminado, es decir, solo podemos compilar todos los archivos .c ingresando el comando make. .

1. Escritura básica de makefile

Solo se genera un archivo ejecutable principal. El contenido básico del archivo MAKE es el siguiente:
Inserte la descripción de la imagen aquí
donde main es seguido por el archivo que main ejecuta para depender, seguido por el proceso de generar cada archivo .o para depender. Y la parte desocupada en frente es la tecla de tabulación.
Después de ingresar make, complete el proceso de conexión de la siguiente manera:
Inserte la descripción de la imagen aquí
¡Nota! La operación make clean es principalmente para eliminar el archivo .o y main inside. El efecto es el siguiente:
Inserte la descripción de la imagen aquí
si le agregamos un archivo run.c en este momento para generar dos archivos ejecutables main y run, el contenido básico del archivo makefile es el siguiente :
Inserte la descripción de la imagen aquí
El contenido del archivo generado después de la creación es el siguiente:
Inserte la descripción de la imagen aquí
luego ejecute dos archivos ejecutables
Inserte la descripción de la imagen aquí

2. Optimización de makefile

1. La derivación implícita
de make GUN's make es muy poderosa, puede deducir automáticamente los comandos detrás del archivo y las dependencias del archivo, por lo que no necesitamos escribir comandos similares después de cada archivo .o
2. Variables de entorno CC Especificación de la herramienta del compilador El compilador
se puede especificar cambiando el CC, para que podamos actualizar el archivo MAKE de la siguiente manera:
Inserte la descripción de la imagen aquí
Además, podemos reemplazar el archivo de dependencia siguiendo la etiqueta de manera similar a la macro. El archivo MAKE se mejora aún más de la siguiente manera:
Inserte la descripción de la imagen aquí
3. La variable de entorno VPATH especifica la ruta de búsqueda.
Tenga en cuenta también que solo se necesita el archivo ejecutable al final y que no se necesita el archivo .o en el medio. Limpiar. La
versión optimizada final es la siguiente:
Inserte la descripción de la imagen aquí

Publicado 98 artículos originales · ganado elogios 9 · vistas 3652

Supongo que te gusta

Origin blog.csdn.net/qq_43412060/article/details/105365712
Recomendado
Clasificación