Maison  >  Article  >  Tutoriel système  >  Processus d'exécution du compilateur c/c++ basé sur une entrée de ligne de commande

Processus d'exécution du compilateur c/c++ basé sur une entrée de ligne de commande

WBOY
WBOYoriginal
2024-06-01 21:57:27904parcourir

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.

编译用英语怎么说_编译用英语_linux怎么用gcc编译

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 commande

Cela 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

linux怎么用gcc编译_编译用英语_编译用英语怎么说

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

linux怎么用gcc编译_编译用英语_编译用英语怎么说

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

编译用英语怎么说_linux怎么用gcc编译_编译用英语

-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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn