logo

Linux du CCG

Sous Linux, GCC signifie Collection de compilateurs GNU . Il s'agit d'un système de compilation pour les différents langages de programmation. Il est principalement utilisé pour compiler les programmes C et C++. Il prend le nom du programme source comme argument nécessaire ; Les arguments rest sont facultatifs, tels que le débogage, l'avertissement, le fichier objet et les bibliothèques de liaison.

GCC est un composant essentiel de la chaîne d'outils GNU. Divers projets open source sont compilés à l'aide de GCC, tels que le noyau Linux et les outils GNU.

Il est distribué sous licence GPL (General Public License). La première version, CCG 1.0 , est sorti en 1987. Il était uniquement destiné au langage de programmation C, mais la même année, il a été étendu au langage de programmation C. Langage de programmation C++ . Plus tard, il a été développé pour d'autres langages de programmation tels que Objective-C, Objective-C++, Fortran, Java , Ada, Go et plus encore. Sa dernière version présente une implémentation nettement améliorée des langages de programmation.

C'est le partenaire officiel de GNU OS ; par conséquent, il a été adopté comme compilateur standard des systèmes basés sur Linux.

xor cpp

Composants de GCC

GCC est un outil portable et peut fonctionner sur de nombreux systèmes d'exploitation. Il peut également être porté sur les fenêtres en utilisant certains outils tels que Cygwin, MinGW et MinGW-W64 . Comme il s'agit d'un composant clé de la chaîne d'outils GNU, il contient les composants suivants pour le développement d'applications et de systèmes d'exploitation :

Collection de compilateurs GNU (GCC) : Il s'agit d'une suite de compilateurs pour de nombreux langages, tels que C/C++ et Objective-C/C++.

Marque GNU : Il s'agit d'un outil d'automatisation utilisé pour compiler et créer des applications.

Binutils GNU : C'est une suite qui contient des outils utilitaires binaires tels que éditeur de liens et assembleur .

Débogueur GNU (GDB). Il est utilisé pour déboguer les applications.

Outils automatiques GNU : Il s'agit d'un système de construction qui contient des outils utilitaires tels que Autoconf, Autoheader, Automake et Libtool.

GNUBison : C'est un générateur d'analyseurs comme lex et yacc.

Processus du compilateur GCC

Le GCC compile et rend exécutable un programme en quatre étapes :

Linux du CCG

Prétraitement : Dans cette étape, le préprocesseur GNU (cpp.exe) crée un fichier intermédiaire contenant le code source. Le préprocesseur inclut les en-têtes (#include) et développe les macros (#define). Considérez la commande ci-dessous :

 cpp hello.c > hello.i 

La commande ci-dessus créera un fichier intermédiaire « hello.i ».

Compilation: Au cours de cette étape, le code source prétraité est compilé en code assembleur pour un processeur spécifique.

 gcc -S hello.i 

La commande ci-dessus créera un fichier d'assemblage 'hello.s.' L'option '-s' est utilisée pour spécifier que produire le code assembleur plutôt que le code objet.

Assemblée: Le code assembleur est converti en code machine. Cela créera un fichier objet 'hello.o.'

 as -o hello.o hello.s 

Lien : Le Linker (ld.exe) est la dernière étape du processus du compilateur. Il relie le code objet au code de la bibliothèque et produit un fichier exécutable.

 ld -o hello.exe hello.o 

La commande ci-dessus créera un fichier exécutable « hello.exe ».

Installation de GCC sous Linux

Par défaut, il est livré avec la plupart des distributions Linux. Nous pouvons le vérifier en exécutant la commande ci-dessous :

 gcc -version 

La commande ci-dessus affichera la version installée de l'outil GCC. S'il n'est pas installé, suivez les étapes ci-dessous pour l'installer :

Étape 1 : Mettez à jour la liste des packages.

Pour mettre à jour la liste des packages, exécutez la commande suivante :

 sudo apt update 

Il vous demandera le mot de passe administratif du système, entrez le mot de passe. Il commencera à mettre à jour le package système. Considérez l'instantané de sortie ci-dessous :

Linux du CCG

Étape 2 : Installez le package build-essential.

algorithme de Bellford

Il contient divers packages tels que gcc, g++ et make utility. Exécutez la commande ci-dessous pour l'installer :

 sudo apt install build-essential 

La commande ci-dessus installera les packages requis pour l'utilitaire GCC. Maintenant, nous pouvons utiliser l'utilitaire GCC sur notre machine. Considérez l'instantané de sortie ci-dessous :

Linux du CCG

Étape 3 : Vérifiez l’installation.

Pour vérifier l'installation, exécutez la commande gcc -version comme suit :

 gcc --version 

Il affichera la version installée de l'utilitaire GCC. Pour afficher des détails plus spécifiques sur la version, utilisez l'option '-v'. Considérez le résultat ci-dessous :

Linux du CCG

Ici, nous avons installé avec succès l'utilitaire GCC. Comprenons comment l'utiliser. Nous allons créer et exécuter des programmes C en utilisant GCC.

Exécuter le premier programme C par gcc

Créer une base programme c 'Bonjour le monde!'. Créez un fichier 'hello.c' et mettez-y le code ci-dessous :

 #include int main() { printf('Hello, world!
'); return 0; } 

Maintenant, compilez le hello.c comme suit :

 gcc hello.c 

Si nous exécutons directement hello.c, cela générera l’erreur. Rendez-le exécutable, le fichier exécutable par défaut pour le système Linux est a.out. Pour exécuter le fichier, exécutez la commande chmod comme suit :

 chmod a+x a.out 

Maintenant, exécutez le programme c comme :

 ./a.out 

Considérez le résultat ci-dessous :

Linux du CCG

Exemples de commande GCC

Voici quelques exemples utiles de commande gcc :

    Spécifiez le nom du fichier objet

Par défaut, la commande gcc crée le fichier objet comme 'a.out .' Si vous souhaitez modifier le nom du fichier de sortie par défaut, utilisez le '-O' option.

Exécutons la commande de base gcc :

 gcc hello.c 

La commande ci-dessus générera le fichier objet « a.out ». Pour spécifier le nom du fichier objet, exécutez la commande comme suit :

 gcc hello.c -o hello 

Il générera le fichier de sortie « bonjour ». Considérez le résultat ci-dessous :

Linux du CCG
    Activer tous les avertissements

Pour activer tous les avertissements dans la sortie, utilisez le '-Mur' option avec la commande gcc. Créons une variable dans la fonction principale de hello.c. Considérez le code ci-dessous :

Bonjour c:

 #include int main() { int a; printf('Hello, world!
'); return 0; } 

Si nous compilons le code ci-dessus en utilisant l'option -Wall. Il lancera les avertissements. Exécutez la commande ci-dessous pour compiler le fichier :

 gcc -wall hello.c 

La commande ci-dessus affichera les avertissements. Considérez le résultat ci-dessous :

Linux du CCG
    Produire la sortie étape par étape du processus de compilation

Nous ne pouvons produire que le résultat étape par étape du processus de compilation.

Produire la sortie du préprocesseur

Nous pouvons produire uniquement la sortie de prétraitement en utilisant l'option « -E ». Considérez la commande ci-dessous :

 gcc -E hello.c > hello.i 

A partir de la commande ci-dessus, un fichier 'bonjour.je' qui contient une sortie prétraitée est généré. Considérez le résultat ci-dessous :

Linux du CCG

Produire le code assembleur

Pour produire le code assembleur, exécutez la commande avec l'option '-S'. Considérez la commande ci-dessous :

 gcc -S hello.c > hello.s 

La commande ci-dessus générera le 'hello.s.' fichier qui contient le code assembleur. Considérez le résultat ci-dessous :

Linux du CCG

Produire le code compilé

programmation dans des tableaux C

Nous pouvons produire uniquement le code compilé en utilisant l'option '-C'. Considérez la commande ci-dessous :

 gcc -C hello.c 

La commande ci-dessus générera un fichier « a.out », contenant uniquement le code machine ou le code compilé. Considérez le résultat ci-dessous :

Linux du CCG

Produire tous les fichiers intermédiaires du processus de compilation

Nous pouvons produire tous les fichiers intermédiaires du processus de compilation en utilisant l'option '-save-temp'. Considérez le résultat ci-dessous :

 gcc -save-temps hello.c 

La commande ci-dessus générera tous les fichiers intermédiaires ainsi que les fichiers exécutables à la fois. Considérez le résultat ci-dessous :

Linux du CCG
    Imprimez le résultat de manière détaillée.

Nous pouvons afficher des informations détaillées sur chaque étape effectuée par la commande gcc. Pour ce faire, exécutez la commande avec l'option '-v'.

 gcc -W -v hello.c 

Considérez l'instantané de sortie ci-dessous :

Linux du CCG

Nous avons discuté de quelques exemples les plus utiles de la commande gcc. Étant donné que la commande gcc propose un grand nombre d'options, vous pouvez rester bloqué n'importe où lorsque vous l'utilisez. Voyons comment obtenir de l'aide par vous-même depuis le terminal.

Manuel du CCG

Si vous êtes bloqué quelque part lors de l'utilisation de la commande gcc, vous pouvez demander de l'aide depuis votre terminal. Pour accéder au manuel depuis la ligne de commande, exécutez la commande man comme suit :

 man gcc 

La commande ci-dessus affichera le manuel contenant une description et une liste des options prises en charge avec une brève description. Considérez l'instantané de sortie ci-dessous :

Linux du CCG

vous pouvez faire défiler la sortie pour en savoir plus. Appuyez sur la touche « h » pour obtenir de l'aide et sur q pour quitter le manuel et revenir au terminal.