[Sistema operativo] Automatización de proyectos Liunx build tool-make/Makefile

       

  5a2585dded9b416fb4ea58637b42ed39.png

  Página de inicio de Yan-yingjie

Se puede buscar la conciencia del pasado, no la protesta, conociendo el futuro.  

Programador de C++, estudiante de posgrado en información electrónica de 2024


Tabla de contenido

1. Antecedentes

Dos, Makefile

        lograr

        Dependencias de archivos MAKE

        dependencias

        Cómo funcionan los archivos MAKE

        proyecto de limpieza

        Reponer:

        ¿Qué es .PHONY?

       ¿Cómo hace Linux comentarios de varias líneas?

        ilustrar:

3. Applet de Linux (barra de progreso)

Cuarto, use la línea de comando git

Cinco, consigue tres trucos

        Descarga el proyecto a local

        El primer truco de los tres ejes: git add

        El segundo truco de los tres trucos: git commit

        El tercer truco de los tres trucos: git push


1. Antecedentes

         ¿Puedes escribir makefifile? Por un lado, muestra si una persona tiene la capacidad de completar un proyecto a gran escala. Los archivos fuente de un proyecto no se cuentan. Se colocan en varios directorios según el tipo, la función y el módulo. Makefifile define una serie de reglas para especificar qué archivos se deben compilar primero, qué archivos se deben compilar más tarde, qué archivos se deben volver a compilar e incluso operaciones funcionales más complejas. El beneficio de makefifile es la "compilación automática". Una vez escrito, solo 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. make es una herramienta de comando que explica los comandos en el archivo MAKE. En términos generales, la mayoría de los IDE tienen este comando, como: make en Delphi, nmake en Visual C++, make en GNU bajo Linux. Se puede ver que makefifile se ha convertido en un método de compilación en ingeniería. make es un comando, makefifile es un archivo, y los dos se usan juntos para completar la construcción automática del proyecto.

Dos, Makefile

        lograr

         codigo c
        
#include <stdio.h>
int main()
{
     printf("hello Makefile!\n");
     return 0;
}
        Makefifile文件 hola:hola.o gcc hola.o -o hola hola.o:hola.s gcc -c hola.s -o hola.o hola.s:hola.i gcc -S hola.i -o hola.s hola.i:hola.c gcc -E hola.c -o hola.i

       Dependencias de archivos MAKE

        
.PHONY:clean
clean:
 rm -f hello.i hello.s hello.o hello

        dependencias

        El archivo de arriba hola, que depende de hell.o
        hola.o , que depende de hola.s
        hola.s , que depende de hola.i
        hola.i , que depende de hola.c

        Cómo funcionan los archivos MAKE

                ① El comando make encontrará un archivo llamado "Makfile" o "makefile" en el directorio actual -->② Primero
Encuentre, el primer archivo de destino, en el ejemplo anterior, primero encontrará el archivo de saludo y usará este archivo como el último
Archivo final ——> ③ Si el archivo hello no existe, o el tiempo de modificación del archivo hello.o del que depende hello es más largo que
hola.o esta línea de archivo, luego ejecutará el comando definido más adelante para generar hola este archivo -->  ④Si
El archivo hello.o del que depende hello no existe, luego make encontrará la dependencia cuyo objetivo es el archivo hello.o en el archivo actual, como
Si se encuentra, el archivo hello.o se generará de acuerdo con esa regla. (Esto es un poco como un proceso de pila) ——> ⑤ Por supuesto,
Su archivo C y su archivo H existen, por lo que make generará el archivo hello.o y luego usará el archivo hello.o para declarar
La última tarea de make es ejecutar el archivo hello. ——> ⑥ Esta es la dependencia de todo el make, make will
Encuentre las dependencias de los archivos capa por capa hasta que finalmente se compile el primer archivo de objeto. ——> ⑦ En el proceso de búsqueda
Durante el proceso, si ocurre un error, como que no se puede encontrar el último archivo dependiente, make saldrá directamente e informará un error, mientras que
Para errores en los comandos definidos, o compilación fallida, make simplemente los ignora. ——> ⑧ make solo se preocupa por las dependencias de los archivos
Dependencia, es decir, si después de encontrar las dependencias, el archivo después de los dos puntos todavía no está allí

        

        proyecto de limpieza

        

        Al igual que limpiar, si no está asociado directa o indirectamente con el primer archivo de destino, los comandos definidos detrás de él no funcionarán.
se ejecuta automáticamente, sin embargo, podemos pedirle explícitamente a make que lo ejecute. Es decir, el comando - "limpiar" para borrar todo
archivos de objeto para la recompilación. Pero en general, para nuestro archivo de destino limpio, lo configuramos como un pseudo destino, usando
El modificador .PHONY, que es característico de los pseudo-targets, siempre se ejecuta. Podemos declarar nuestro archivo de objeto hello como un pseudo-objeto
Marca, prueba

        Reponer:

        ¿Qué es .PHONY?

         .PHONY es un pseudoobjetivo,
        que puede evitar conflictos de nombres entre el objetivo de solo comando definido en el Makefile y el archivo real en el directorio de trabajo.El otro es la eficiencia al enviar y ejecutar el makefile.

       ¿Cómo hace Linux comentarios de varias líneas?

        1. ESC para salir al modo comando

        2.ctrl+v cambiar al modo de visualización

        3. HJKL mueve la posición del cursor

        4. shift+i entrada//

        5. Presione ESC nuevamente para hacer comentarios de varias líneas

        ilustrar:

        
        (1) Pseudo-objetivo significa que el objetivo en sí mismo no representa un archivo. Ejecutar este objetivo no es obtener un determinado archivo o algo así, sino simplemente ejecutar el comando bajo este objetivo.
        (2) Los pseudo-objetivos generalmente no tienen dependencias, porque la ejecución de los pseudo-objetivos es ejecutar los comandos bajo el objetivo. Dado que el comando debe ejecutarse, no es necesario agregar dependencias, porque no agregar dependencias significa una ejecución incondicional.
        (3) Los pseudo-objetivos se pueden escribir directamente sin afectar el uso, pero a veces para declarar claramente que este objetivo es un pseudo-objetivo, .PHONY se usa delante del pseudo-objetivo para declarar claramente que es un pseudo-objetivo. -objetivo
        Por ejemplo:
        
        
.PHONY clean

clean:
        rm -rf *.o 

       El comando make omitirá automáticamente el proceso de búsqueda de reglas implícitas , es decir, el comando make clean ignorará automáticamente el nombre.

Para la existencia de archivos "limpios", declarar el elemento de configuración .PHONY mejorará el rendimiento y no tendrá que preocuparse por la existencia de archivos reales con el mismo nombre.

O no.

        

3. Applet de Linux (barra de progreso)

       Dependencias: Makefile

        

processbar: main.c processBar.c
    gcc -o $@ $^
.PHONY:clean
clean:
    rm -f processbar

        procesoBar.h

        

#pragma once
#include<stdio.h>
#include<string.h>
#include<unistd.h>
extern void processbar();

        

        procesoBar.c

        

#include "processBar.h"
  
 void processbar()
 {
     int i = 0;
     char bar[102];
     memset(bar, 0 ,sizeof(bar));
     const char *lable="|/-\\";
    
    while(i <= 100)
    {
      printf("[%-100s][%d%%][%c]\r", bar, i, lable[i%4]);
      fflush(stdout);
      bar[i++] = '#';
      usleep(10000);
    }
    
    printf("\n");
    
}   

Cuarto, use la línea de comando git

        fondo:

        Git pertenece al sistema de gestión de versiones descentralizado y es un software diseñado para la gestión de versiones.

        El creador de Linux, Linus Torvalds, desarrolló un prototipo de Git en 2005. En ese momento, Torvalds desarrolló Git para reemplazar el nuevo sistema de administración de versiones debido a cambios en la licencia de desarrollador del sistema de administración de versiones existente utilizado en el desarrollo del kernel de Linux.

        La velocidad de actualización del kernel de Linux es insuperable en el mundo. Por lo tanto, seguramente necesitará un sistema de gestión de versiones con funciones sólidas y alto rendimiento para mejorar la velocidad de desarrollo.

        En el entorno de código abierto de la época, aunque se habían desarrollado varios software de gestión de versiones, sus funciones y rendimiento no eran satisfactorios. Además, Git fue desarrollado por el propio Linus Torvalds, por lo que se puede decir que es impecable en cuanto a funciones y rendimiento. La voluntad de los programadores de aceptar Git depende en gran medida de estos antecedentes.

        
        

Cinco, consigue tres trucos

        Nota: debe tener una cuenta de gitee o github antes de realizar estas operaciones
        

        Descarga el proyecto a local

        Cree un directorio para colocar el código.
        La URL aquí es el enlace al proyecto recién creado .

        El primer truco de los tres ejes: git add

        

  git clone https://www.xxxx.com/xxxxxx
        Pon el código en el directorio que acabas de descargar
      
        Dile a git sobre los archivos que deben ser administrados por git

        El segundo truco de los tres trucos: git commit

        Confirmar cambios en local
        El último "." indica el directorio actual
        Al enviar, debe indicar el registro de envío y describir los detalles de los cambios .
        Error:

        

        Cuando se encuentra una confirmación, no se puede reconocer el comando git. ¿Cómo debería resolver este problema la identidad del autor de la confirmación? 

        

//修改默认邮箱和账户

git config --global user.email "[email protected]"

git config --global user.name "Yan-英杰"

        El tercer truco de los tres trucos: git push

                sincronizar con el servidor remoto

git push
        sincronizar con el servidor remoto
        Debe completar el nombre de usuario y la contraseña. Después de que la sincronización sea exitosa , actualice la página de Github para ver los cambios en el código.

Supongo que te gusta

Origin blog.csdn.net/m0_73367097/article/details/131699342
Recomendado
Clasificación