1. La naissance du CCG !
En 1985, lors d’une nuit sombre où ses doigts étaient hors de vue, un homme étrange à la barbe, à la petite silhouette et aux cheveux en bataille a commencé à écrire un ensemble de compilateurs en langage C. Cette éphonie, plus tard connue comme le « plus grand programmeur » et le « père du logiciel libre », était Richard Stallman. Après deux ans de travail acharné, Richard Stallman, qui a une barbe plus longue et des cheveux plus en bataille, a achevé la première version du compilateur C, qu’il appelle GNU C Complier, qui est désormais la source du célèbre GCC. Par la suite, GCC s’est développé rapidement, et désormais GCC peut compiler non seulement le langage C, mais aussi C++, Fortran, Pascal, Objective-C, Java, Ada et d’autres langages. Dans les années 80 et 90 du siècle dernier, la fréquence du processeur, la taille du disque dur et la taille de la mémoire des ordinateurs personnels étaient tous mesurés en Mo, voire en KB, et le nombre de fichiers de programme à compiler était faible, et les commandes GCC suffisaient à gérer cela.
Deuxièmement, de nouveaux problèmes sont apparus ! (créer & fabriquer le file)
Avec l’amélioration et la popularisation des performances informatiques, un projet logiciel contient de plus en plus de fichiers sources, comme Linux, qui est facilement confus et chargé de travail, facile à confondre et chargé de travail, ce qui rendra les gens fous.
Richard Stallman et Roland McGrath ont co-développé make et makefile pour résoudre ce problème. L’outil make peut être considéré comme un outil intelligent de traitement par lots, qui n’a pas pour fonction de compilation et de liaison, mais utilise une méthode similaire au traitement par lots – en appelant les commandes spécifiées par l’utilisateur dans le fichier makefile. Qu’est-ce qu’un makefile ? Le makefile est un fichier script, tout comme la partition d’une chanson, l’outil make est comme un chef d’orchestre, le chef dirige l’orchestre entier pour jouer selon la partition, et l’outil make est compilé et lié selon les commandes du makefile. La commande makefile contient des commandes pour appeler gcc (ou un autre compilateur) afin de compiler un fichier source.
3. De nouveaux problèmes sont revenus ! (Cmake & CMakelist)
Le makefile peut être écrit à la main sous certains projets simples, mais lorsque le projet est très volumineux, il est aussi très difficile d’écrire le makefile à la main. Et des makefiles pour différentes plateformes sont apparus les uns après les autres, notamment GNU make, QT’s qmake, MSnmake de Microsoft, BSD Make (pmake), Makepp, etc. Ces outils Make suivent des spécifications et des standards différents, et le format Makefile qu’ils utilisent varie considérablement. Cela pose un problème sérieux : si le logiciel veut être multiplateforme, il doit pouvoir compiler sur différentes plateformes. Si vous utilisez l’outil Make ci-dessus, vous devez écrire un fichier make pour chaque standard, ce qui sera un travail de folie, et si vous changez le fichier make de la plateforme, vous devrez le remodifier.
Ainsi, à ce moment-là, l’outil Cmake est apparu, et Cmake peut générer plus facilement un fichier makefile pour le make mentionné ci-dessus. Bien sûr, cmake a aussi d’autres fonctions, c’est-à-dire qu’il peut générer des makefiles qui peuvent être utilisés sur la plateforme correspondante à travers les plateformes, sans avoir à le modifier soi-même. cmake est la couche supérieure de Makefile, et leur but est de produire des makefiles portables et de simplifier l’énorme charge de travail liée à l’écriture de makefiles seul. Mais à quoi sert cmake pour générer un makefile ? Il doit également générer un fichier make basé sur un fichier appelé fichier CMakeLists.txt (nom scientifique : fichier de configuration). Au final, CMakeLists.txt qui rédige le document ? Bien sûr, tu l’as écrit toi-même.
Quatrièmement, de nouveaux problèmes sont de nouveau apparus ! (Ninja)
À mesure que l’ingénierie logicielle devient plus grande et plus complexe, le problème de la lenteur de la vitesse d’exécution de la fabrication devient de plus en plus grave.
En conséquence, un programmeur de Google a lancé Ninja, un outil de construction axé sur la vitesse. Ninja n’a pas toutes sortes de fonctionnalités avancées, la syntaxe et l’utilisation sont très simples, et il précise en détail ce qu’il faut faire, donc il commence à compiler très rapidement. Selon des tests réels : avec plus de 30 000 fichiers sources, il est également possible de lancer une vraie compilation en 1 seconde. En revanche, les Makefiles écrits par des ingénieurs seniors mettent aussi 10 à 20 secondes à démarrer.
5. La fin parfaite jusqu’à présent !
Cmake peut générer des outils .ninja et .makefile. Comme beaucoup de gens ne connaissent pas comment écrire des fichiers makefile et ninja, cmake n’a besoin que d’une simple description du fichier source (c’est-à-dire CMakeLists.txt fichier) pour générer automatiquement un fichier project makefile ou ninja, puis commencer à compiler via ninja ou make.
5 minutes pour comprendre make/makefile/cmake/nmake
Récemment, as-tu été créé par make, cmake, makefile... ... Ces choses sont étourdissantes, regardez l’article suivant, peut-être que vous comprenez clairement.
1. GCC Il s’agit de la GNU Compiler Collection, ou simplement un compilateur, capable de compiler de nombreux langages de programmation (dont C, C++, Objective-C, Fortran, Java, etc.).
Lorsque notre programme n’a qu’un seul fichier source, nous pouvons le compiler directement avec la commande gcc.
Mais que se passe-t-il si notre programme contient de nombreux fichiers sources ? Lorsqu’on compile avec les commandes gcc une par une, il est facile de se perdre et de demander beaucoup de travail, d’où l’outil de création suivant.
2. Faire L’outil make peut être considéré comme un outil intelligent de traitement par lots, qui n’a pas pour fonction de compilation et de liaison, mais utilise une méthode similaire au traitement par lots – en appelant les commandes spécifiées par l’utilisateur dans le fichier makefile.
3. makefile Qu’est-ce que c est?
En termes simples, tout comme la partition d’une chanson, l’outil make est comme un chef d’orchestre : le chef dirige tout l’orchestre pour jouer selon la partition, et l’outil make compile et relie selon les commandes du makefile. La commande makefile contient des commandes pour appeler gcc (ou un autre compilateur) afin de compiler un fichier source.
Le makefile peut être pris manuellement dans certains projets simples, mais lorsque le projet est très volumineux, le makefile manuscrit devient aussi très problématique.
4. cmake Cmake peut facilement générer un fichier makefile pour le make ci-dessus. Bien sûr, cmake a d’autres meilleures fonctions, c’est-à-dire qu’il peut générer des makefiles qui peuvent être utilisés sur la plateforme correspondante à travers les plateformes, donc nous n’avons pas à les modifier nous-mêmes.
Mais à quoi sert cmake pour générer un makefile ? Il doit également générer un fichier make basé sur un fichier appelé fichier CMakeLists.txt (nom scientifique : fichier de configuration).
5. CMakeList.txt Au final, CMakeLists.txt qui rédige le document ? Chérie, c’est écrit de ta propre main.
6. nmake Qu’est-ce que nmake ?
nmake est une commande secondaire dans Microsoft Visual Studio, qui doit installer VS, ce qui peut en fait être considéré comme équivalent à la création de Linux, tu comprends ?
Transféré depuis :
La connexion hyperlientérée est visible.
La connexion hyperlientérée est visible.
La connexion hyperlientérée est visible.
|