Sintaxis básica de Makefile

1. Que es hacer

        make es una herramienta de comando, una herramienta de comando que interpreta las instrucciones en un archivo MAKE.

2. ¿Por qué aprender el comando make?

        Ejemplo: el compilador gcc que solemos usar en Linux tiene 5 archivos .c (a .c      b .c     c .c     d .c     e .c )

         Instrucciones de compilación: gcc   a .c      b .c     c .c     d .c     e .c    -o test           

  Cuando entramos al trabajo, necesitamos compilar muchos archivos .c, como compilar cientos o miles de archivos, si usamos el método anterior, no es bueno.

Las razones son las siguientes:

 1. Es fácil pasar por alto un determinado archivo .c, lo que provoca un error de compilación y una resolución de problemas que requiere mucho tiempo.

 2. Cuando no hemos perdido ningún golpe y hemos generado correctamente los archivos ejecutables. Pero necesitamos modificar un determinado archivo y tenemos que volver a compilar cada .c

 3. Cuando trabajamos, muchos de los códigos que escribimos deben usarse en todas las plataformas. Por ejemplo, cuando escribimos en ARM, necesitamos usar el comando arm-linux-gcc

      Resumen: la compilación es problemática : para facilitar la compilación, debemos aprender a hacer instrucciones y uso

3. Make resuelve muy bien los problemas anteriores

(1) Mantenimiento de un gran número de relaciones de código

        Hay muchos códigos fuente en el gran proyecto, mantenimiento manual, mucho tiempo de compilación y comandos de compilación complicados, lo que dificulta recordarlo y mantenerlo. Por lo tanto,
escriba los comandos de mantenimiento del código y los comandos de compilación en el archivo MAKE, y luego use la herramienta make para analizar el archivo y ejecutar automáticamente los comandos correspondientes, que pueden realizar la compilación razonable del código.

(2) Reducir el tiempo de compilación repetido

        Al cambiar uno de los archivos, puede juzgar qué archivos se han modificado, solo puede volver a editar el archivo y luego volver a vincular todos los archivos de destino para ahorrar tiempo de compilación

4. ¿Qué es Makefile?

Makefile es un archivo que describe las reglas de compilación de nuestro programa, similar a un script

Cuando ejecutamos el comando make, el comando make encontrará el archivo Makefile en el directorio actual y compilará el programa de acuerdo con las reglas de ejecución en el archivo.

Nota: Los archivos de reglas Makefile son reglas de compilación escritas por nuestros programadores de acuerdo con sus propios programas.

Cinco, los beneficios de usar Makefile

     1. Simplifique el comando de entrada al compilar el programa, como el anterior  gcc    a .c      b .c     c .c     d .c     e .c    -o test    

Introduzca directamente una    marca      para completar la compilación

     2. Ahorre tiempo de compilación y mejore la eficiencia de compilación

6. Reglas gramaticales de Makefile

 Archivos de objeto: lista de archivos dependientes

<tab> Comando de compilación // <tab> Esta es la tecla de tabulación

claro:

<tab> rm archivo de destino -rf //Utilice el comando aclarar: elimine los archivos de destino generados

 1. Archivo de destino:

       Por lo general, finalmente compilamos el archivo ejecutable

2. Archivos de dependencia

      es el archivo utilizado para ingresar el archivo de objeto resultante

      Un archivo de objeto generalmente tiene varios archivos dependientes (o solo uno)

             archivo dependiente de gcc     archivo dependiente       -o      archivo de objeto            (múltiples archivos dependientes)  

                archivo de dependencia     gcc  -o     archivo de objeto                                   (un archivo de dependencia)

Además: el archivo dependiente del archivo de destino puede ser un archivo .c    o un archivo .o

Por ejemplo: hay tres archivos .c y un archivo de encabezado, que son: main .c      a .c      b .c      head.h

 (1) El modo de compilación habitual        

   (2) Use el comando make para completar la compilación

     Paso 1: en la ubicación actual, cree un Makefile

         Directiva: vim Makefile                    

    Paso 2: especifique las reglas de compilación de acuerdo con el archivo .c del compilador

El primer tipo de escritura (no se usa comúnmente y no se puede ver qué archivo se ha modificado, no se puede usar multiplataforma; la compilación fallará)

 Ingrese el comando make y ejecute el archivo

Resultado de salida y demostración de operación de eliminación

El segundo tipo de escritura (puede verificar qué archivo se ha modificado, pero no se puede usar en todas las plataformas; la compilación fallará)

Ingrese el comando make y ejecute el archivo

Resultado de salida y demostración de operación de eliminación 

El tercer tipo de escritura (puede ver la modificación del archivo y también se puede usar en todas las plataformas) se basa en el segundo tipo de escritura y adaptación: no comprenda la Sección 8

Siete, hacer formato de comando

           Todos los usos anteriores son  una marca separada , ¿no usan todos   una marca separada? respuesta: no

Simplemente hablando, usar make solo está relacionado con el nombre del Makefile creado.

Por defecto  , make  busca archivos llamados: GNUmakefile, Makefile y makefile en el directorio de trabajo como archivos de entrada de archivos MAKE.

Simplemente hablando, es crear uno de los nombres: GNUmakefile, Makefile, makefile ,  

                  Puedes usar un solo comando make

Si no está creando uno de los 3 tipos anteriores, debe usar    make -f nombre de archivo

Por ejemplo: cree un  Makefile1   (este Makefile1   no es los tres anteriores)

No puede usar un comando de creación separado, pero use        make -f Makefile1    

 8. Variables personalizadas de Makefile (después de aprender esta sección, básicamente la has dominado)

Definir variables:

             nombre de la variable = valor de la variable

Variable de cotización:

            $(nombre de variable) o ${nombre de variable}

Nombre de la variable Makefile: puede comenzar con un número.

8.1 Ejemplo: como se muestra en la figura a continuación (este ejemplo es la primera forma de escribir)

 ser como se muestra a continuación

 Análisis: $(cc) es gcc, pero este $(cc) se puede compilar entre plataformas

            $(obj) es principal.c ac bc

Del mismo modo: $(objetivo) es principal

En resumen, solo cambie el nombre, con el mismo significado que la imagen original.

¿Por qué quieres hacer esto, conveniente, rápido,

Cuando tenemos miles de archivos .c, podemos reemplazar directamente miles de archivos .c con un nombre y referirnos a él $(nombre)

8.2 Ejemplo: como se muestra a continuación (este ejemplo es la segunda forma de escribir)

                

De repente descubrió que cuando tenemos cientos de archivos .c, hay muchos códigos escritos de esta manera, por lo tanto, vea la Sección 9, cómo escribir códigos más simples. 

 9. Variables predefinidas

Hay muchas variables predefinidas en el archivo MAKE, que tienen significados especiales y se pueden usar directamente en el archivo MAKE.

Comúnmente utilizados son:

      $@ nombre de destino    (es decir, el lado izquierdo de "  : " es el nombre de destino) como    main: main.c (main es el nombre de destino)

      $< El primer archivo en la lista de archivos dependientes,      como main: main.c ac bc    ($< es el primer main.c en fuente roja)

     $ ^ Todos los archivos dependientes         como: main: main.c ac bc    ($^ es la fuente roja)

     CC El nombre del compilador de C, por defecto es cc

     Opciones de CFLAGS para el compilador de C

Las reglas perfectas son las que se muestran en la siguiente figura.

Aprende, haz doble click para darle me gusta!!! 

Supongo que te gusta

Origin blog.csdn.net/weixin_47783699/article/details/128885426
Recomendado
Clasificación