[Système d'exploitation] Outil de construction d'automatisation de projet Liunx-make/Makefile

       

  5a2585dded9b416fb4ea58637b42ed39.png

  Page d'accueil de Yan-yingjie

La conscience du passé, et non la remontrance, la connaissance de l'avenir, peut être poursuivie  

Programmeur C++, étudiant diplômé en information électronique 2024


Table des matières

1. Origines

Deux, Makefile

        accomplir

        Dépendances Makefile

        dépendances

        Comment fonctionnent les makefiles

        nettoyage du projet

        Remplir:

        Qu'est-ce que .PHONY ?

       Comment Linux fait-il des commentaires multi-lignes :

        illustrer:

3. Applet Linux (barre de progression)

Quatrièmement, utilisez la ligne de commande git

Cinq, git trois tours

        Télécharger le projet en local

        La première astuce des trois axes : git add

        La deuxième astuce des trois astuces : git commit

        Le troisième tour des trois tours : git push


1. Origines

         Pouvez-vous écrire un makefifile ? D'un côté, il indique si une personne a la capacité de mener à bien un projet de grande envergure. Les fichiers sources d'un projet ne sont pas comptés. Ils sont placés dans plusieurs répertoires en fonction du type, de la fonction et du module. Makefifile définit une série de règles pour spécifier quels fichiers doivent être compilés en premier, quels fichiers doivent être compilés plus tard, quels fichiers doivent être recompilés et même effectuer des opérations fonctionnelles plus complexes. L'avantage de makefifile est - "compilation automatique". Une fois écrit, une seule commande make, l'ensemble du projet est entièrement automatiquement compilé, ce qui améliore considérablement l'efficacité du développement logiciel. make est un outil de commande qui explique les commandes dans makefile. De manière générale, la plupart des IDE ont cette commande, comme : make en Delphi, nmake en Visual C++, make en GNU sous Linux. On peut voir que makefifile est devenu une méthode de compilation en ingénierie. make est une commande, makefifile est un fichier, et les deux sont utilisés ensemble pour terminer la construction automatique du projet.

Deux, Makefile

        accomplir

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

       Dépendances Makefile

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

        dépendances

        Le fichier hello ci-dessus, qui dépend de hell.o
        hello.o , qui dépend de hello.s
        hello.s , qui dépend de hello.i
        hello.i , qui dépend de hello.c

        Comment fonctionnent les makefiles

                ① La commande make trouvera un fichier nommé "Makfile" ou "makefile" dans le répertoire courant -->② Premièrement
Find, le premier fichier cible, dans l'exemple ci-dessus, il va d'abord trouver le fichier hello, et utiliser ce fichier comme dernier
Fichier final ——> ③ Si le fichier hello n'existe pas, ou si l'heure de modification du fichier hello.o dont dépend hello est supérieure à
hello.o cette ligne de fichier, puis il exécutera la commande définie ultérieurement pour générer hello ce fichier -->  ④Si
Le fichier hello.o dont dépend hello n'existe pas, alors make trouvera la dépendance dont la cible est le fichier hello.o dans le fichier courant, comme par exemple
S'il est trouvé, le fichier hello.o sera généré conformément à cette règle. (C'est un peu comme un processus de pile) ——> ⑤ Bien sûr,
Votre fichier C et votre fichier H existent, donc make générera le fichier hello.o, puis utilisera le fichier hello.o pour déclarer
La tâche ultime de make est d'exécuter le fichier hello. ——> ⑥ C'est la dépendance de l'ensemble make, make will
Trouvez les dépendances des fichiers couche par couche jusqu'à ce que le premier fichier objet soit finalement compilé. ——> ⑦ En cours de recherche
Au cours du processus, si une erreur se produit, telle que le dernier fichier dépendant est introuvable, alors make quittera directement et signalera une erreur, tandis que
Pour les erreurs dans les commandes définies, ou une compilation infructueuse, make les ignore simplement. ——> ⑧ ne se soucie que des dépendances des fichiers
Dépendance, c'est-à-dire si après avoir trouvé les dépendances, le fichier après les deux-points n'est toujours pas là

        

        nettoyage du projet

        

        Comme clean, s'il n'est pas directement ou indirectement associé au premier fichier cible, alors les commandes définies derrière lui ne seront pas
est exécuté automatiquement, cependant, nous pouvons explicitement demander à make de l'exécuter. Autrement dit, la commande - "make clean" pour tout effacer
fichiers objets pour la recompilation. Mais en général, pour notre fichier cible propre, nous le définissons comme une pseudo cible, en utilisant
Le modificateur .PHONY, caractéristique des pseudo-cibles, est toujours exécuté. Nous pouvons déclarer notre fichier d'objet hello en tant que pseudo-objet
Marquez, testez-le

        Remplir:

        Qu'est-ce que .PHONY ?

         .PHONY est une pseudo-cible,
        qui peut empêcher les conflits de nom entre la cible de commande uniquement définie dans le Makefile et le fichier réel dans le répertoire de travail. L'autre est l'efficacité lors de la soumission du makefile.

       Comment Linux fait-il des commentaires multi-lignes :

        1. ESC pour quitter le mode commande

        2.ctrl+v passer en mode visualisation

        3. HJKL déplace la position du curseur

        4.shift + i entrée //

        5. Appuyez à nouveau sur ESC pour faire des commentaires sur plusieurs lignes

        illustrer:

        
        (1) Pseudo-cible signifie que la cible elle-même ne représente pas un fichier. L'exécution de cette cible ne consiste pas à obtenir un certain fichier ou quelque chose, mais simplement à exécuter la commande sous cette cible.
        (2) Les pseudo-cibles n'ont généralement pas de dépendances, car l'exécution des pseudo-cibles consiste à exécuter les commandes sous la cible. Étant donné que la commande doit être exécutée, il n'est pas nécessaire d'ajouter des dépendances, car ne pas ajouter de dépendances signifie une exécution inconditionnelle.
        (3) Les pseudo-cibles peuvent être écrites directement sans affecter l'utilisation ; mais parfois afin de déclarer clairement que la cible est une pseudo-cible, .PHONY est utilisé devant la pseudo-cible pour déclarer clairement qu'il s'agit d'une pseudo-cible -cible
        Par exemple:
        
        
.PHONY clean

clean:
        rm -rf *.o 

       La commande make contournera automatiquement le processus de recherche de règle implicite , c'est-à-dire que la commande make clean ignorera automatiquement le nom

Pour l'existence de fichiers "propres", la déclaration de l'élément de configuration .PHONY améliorera les performances et vous n'avez pas à vous soucier de l'existence de fichiers réels portant le même nom.

ou non.

        

3. Applet Linux (barre de progression)

       Dépendances : Makefile

        

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

        processBar.h

        

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

        

        processBar.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");
    
}   

Quatrièmement, utilisez la ligne de commande git

        arrière-plan:

        Git appartient au système de gestion de version décentralisée et est un logiciel conçu pour la gestion de version.

        Le créateur Linux Linus Torvalds a développé un prototype de Git en 2005. À cette époque, en raison du changement de la licence développeur du système de gestion de version existant utilisé dans le développement du noyau Linux, Torvalds a développé Git afin de remplacer le nouveau système de gestion de version.

        La vitesse de mise à jour du noyau Linux est inégalée dans le monde. Par conséquent, il est nécessaire d'avoir un système de gestion de version avec des fonctions puissantes et des performances élevées pour améliorer la vitesse de développement.

        Dans l'environnement open source à cette époque, bien que plusieurs logiciels de gestion de versions aient été développés, leurs fonctions et leurs performances n'étaient pas satisfaisantes. De plus, Git a été développé par Linus Torvalds lui-même, on peut donc dire qu'il est impeccable en termes de fonctions et de performances. La volonté des programmeurs d'accepter Git dépend en grande partie de ce contexte.

        
        

Cinq, git trois tours

        Note : Vous devez avoir un compte gitee ou github avant de faire ces opérations
        

        Télécharger le projet en local

        Créez un répertoire pour placer le code.
        L'url ici est le lien vers le projet nouvellement créé .

        La première astuce des trois axes : git add

        

  git clone https://www.xxxx.com/xxxxxx
        Mettez le code dans le répertoire que vous venez de télécharger
      
        Parlez à git des fichiers qui doivent être gérés par git

        La deuxième astuce des trois astuces : git commit

        Valider les modifications en local
        Le dernier "." indique le répertoire courant
        Lors de la soumission, vous devez indiquer le journal de soumission et décrire les détails des modifications .
        Erreur:

        

        Lorsqu'un commit est rencontré, la commande git ne peut pas être reconnue. Comment l'identité du committer doit-elle résoudre ce problème ? 

        

//修改默认邮箱和账户

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

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

        Le troisième tour des trois tours : git push

                synchroniser avec le serveur distant

git push
        synchroniser avec le serveur distant
        Vous devez renseigner le nom d'utilisateur et le mot de passe. Une fois la synchronisation réussie , actualisez la page Github pour voir les changements de code

Je suppose que tu aimes

Origine blog.csdn.net/m0_73367097/article/details/131699342
conseillé
Classement