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
Comment fonctionnent les makefiles
Comment Linux fait-il des commentaires multi-lignes :
3. Applet Linux (barre de progression)
Quatrièmement, utilisez la ligne de commande git
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
#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.ohello.o , qui dépend de hello.shello.s , qui dépend de hello.ihello.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èrementFind, le premier fichier cible, dans l'exemple ci-dessus, il va d'abord trouver le fichier hello, et utiliser ce fichier comme dernierFichier 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 --> ④SiLe 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 exempleS'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éclarerLa tâche ultime de make est d'exécuter le fichier hello. ——> ⑥ C'est la dépendance de l'ensemble make, make willTrouvez les dépendances des fichiers couche par couche jusqu'à ce que le premier fichier objet soit finalement compilé. ——> ⑦ En cours de rechercheAu 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 quePour les erreurs dans les commandes définies, ou une compilation infructueuse, make les ignore simplement. ——> ⑧ ne se soucie que des dépendances des fichiersDé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 pasest exécuté automatiquement, cependant, nous pouvons explicitement demander à make de l'exécuter. Autrement dit, la commande - "make clean" pour tout effacerfichiers objets pour la recompilation. Mais en général, pour notre fichier cible propre, nous le définissons comme une pseudo cible, en utilisantLe modificateur .PHONY, caractéristique des pseudo-cibles, est toujours exécuté. Nous pouvons déclarer notre fichier d'objet hello en tant que pseudo-objetMarquez, 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
.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
Télécharger le projet en local
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échargerParlez à git des fichiers qui doivent être gérés par git
La deuxième astuce des trois astuces : git commit
Valider les modifications en localLe dernier "." indique le répertoire courantLors de la soumission, vous devez indiquer le journal de soumission et décrire les détails des modifications .
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 distantVous 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