Table des matières
Premier : compilateur c/c++ gcc, cc, c++, g++ inclus dans linuxgcc
Deuxième : les fonctionnalités de gcc
Troisième : processus en cours d'exécution de gcc
Quatrième : option gcc
Cinquième : Certaines des règles convenues suivies par gcc
Premier : compilateur c/c++ gcc, cc, c++, g++ inclus dans linuxgcc
Parmi eux, gcc et cc sont identiques, c++ et g++ sont identiques. Habituellement, les programmes en langage C sont compilés avec gccComment compiler Linux avec gccComment compiler Linux avec gcc, et les programmes C++ sont compilés avec g++. .
Deuxième : les fonctionnalités de gcc
gcc est un compilateur portable qui prend en charge plusieurs plates-formes matérielles. Tels que ARM, X86, etc.
En plus d'être un compilateur local, gcc peut effectuer une compilation croisée sur plusieurs plates-formes. Ce qu'on appelle le compilateur local signifie que le programme compilé ne peut être exécuté que dans l'environnement local. Seuls les programmes compilés par gcc peuvent être exécutés sur d'autres plateformes.
gcc dispose de plusieurs backends linguistiques pour analyser différentes langues. De plus, gcc est une commande Linux vi conçue selon la modularité et peut ajouter la prise en charge de nouveaux langages et de nouvelles architectures de processeur. gcc est un logiciel libre. N'importe qui peut utiliser ou modifier ce logiciel.
Troisième : processus en cours d'exécution de gcc
(1) Entrez : gcctest.c
sur la ligne de commandeCela compilera un programme nommé a.out par défaut,
Entrez sur la ligne de commande : ./a.out
Vous pouvez exécuter le programme.
(2) Si vous saisissez sur la ligne de commande : gcctest.c-otest
Cela compilera un programme nommé test
Entrez sur la ligne de commande : ./test
Vous pouvez exécuter le programme.
Remarque : Le paramètre -o est utilisé pour spécifier le nom du programme généré
(3) Exécution étape par étape de la version du système d'exploitation Linux, image plus spécifique
Il contient 4 processus :
1. Prétraitement
Essentiellement, il effectuera 4 opérations (y compris l'expansion des fichiers d'en-tête, la suppression des commentaires, le remplacement de macro et la compilation conditionnelle),
Opération spécifique : Saisie en ligne de commande : gcc-Etest.c-otest.i
Cette commande signifie : après avoir terminé la première étape du prétraitement, il s'arrêtera et le contenu temporaire sera stocké dans le fichier test.i
2.Compile
L'essence est de transformer le langage C en langage assembleur
Opération spécifique : Entrée en ligne de commande : gcc-Stest.i-otest.s
Cette commande signifie : Après la deuxième étape de compilation, celle-ci s'arrêtera et le contenu temporaire sera stocké dans le fichier test.s
3.Compilation
L'essence est de transformer le langage assembleur en un fichier de complément à deux cible (non exécutable)
Opération spécifique : Saisie en ligne de commande : gcc-ctest.s-otest.o
Cette commande signifie : après avoir terminé la troisième étape de l'assemblage, elle s'arrêtera et le contenu temporaire sera stocké dans le fichier test.o
4.Lien
L'essence est d'introduire les bibliothèques tierces que nous utilisons dans le code pour générer des fichiers exécutables ou des fichiers de bibliothèque
(Les bibliothèques tierces sont déterminées par le compilateur et le suffixe du fichier)
Quatrième : option gcc
-E effectue uniquement des opérations de prétraitement
-S compile jusqu'à l'arrêt de l'assemblage (n'assemble pas, termine uniquement le prétraitement et la compilation)
-c effectue des opérations d'assemblage (compiler en code assembleur)
-O[0,1,2,3]
Programme d'optimisation (la valeur par défaut est l'optimisation de niveau 2, 0 n'est pas optimisé, 3 est le niveau d'optimisation le plus élevé)
-static utilise des liens statiques pour les fichiers générés
-essai partagé d'utiliser des bibliothèques dynamiques
-Idir
Ajoutez le répertoire dir au chemin du répertoire pour rechercher les fichiers d'en-tête
-Ldir
Ajoutez le répertoire dir au chemin du répertoire de la bibliothèque de recherche
-llib
Connectez la bibliothèque lib
-Wall amène gcc à émettre des messages d'avertissement pour les problèmes de code dans les fichiers sources
-WNe pas émettre de messages d'avertissement
-g génère des informations de débogage dans le fichier cible pour faciliter le débogage par les débogueurs tels que gdb
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!