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:
- Si este proyecto no se ha compilado , todos nuestros archivos C deben compilarse y vincularse.
- Si se modifican algunos archivos C de este proyecto , solo compilamos los archivos C modificados y vinculamos el programa de destino.
- 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:
Normalmente, cuando compilamos archivos,
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:
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:
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:
¡Nota! La operación make clean es principalmente para eliminar el archivo .o y main inside. El efecto es el siguiente:
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 :
El contenido del archivo generado después de la creación es el siguiente:
luego ejecute dos archivos ejecutables
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:
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:
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: