Gnu C et C ++ compilateurs pour linux

L'outil logiciel de développement le plus important dans Linux est GCC - GNU C et le compilateur C de. En fait, le CCG peut compiler trois langues: C, C ++ et Objective-C (une langue qui ajoute des capacités de la programmation orientée objet à C).

Sommaire

Vous utilisez le même gcc commande pour compiler et lier les deux fichiers source C et C ++. Le compilateur GCC supporte la norme ANSI C, ce qui rend facile à porter tout programme ANSI C pour Linux. En outre, si vous avez déjà utilisé un compilateur C sur d'autres systèmes Unix, vous devriez vous sentir à l'aise avec GCC.

En utilisant GCC

Utilisez le gcc commande d'invoquer GCC. Par défaut, lorsque vous utilisez la gcc commande sur un fichier source, prétraitements CCG, compile, et des liens pour créer un fichier exécutable. Cependant, vous pouvez utiliser les options du CCG à arrêter ce processus à un stade intermédiaire.

Par exemple, vous pourriez invoquer gcc en utilisant le -c option pour compiler un fichier source et de générer un fichier objet, mais pas pour effectuer l'étape de liaison.




En utilisant GCC pour compiler et lier quelques fichiers source de C est facile. Supposons que vous voulez compiler et lier un programme simple composée de deux fichiers source. Pour accomplir cette tâche, utilisez la source de programme suivant code- la tâche qui est stockée dans le fichier area.c calcule l'aire d'un cercle dont le rayon est spécifié sur la ligne de commande.

Compilation de programmes C ++

GNU CC est un C combinés et compilateur C ++, de sorte que le gcc commande peut aussi compiler les fichiers sources C. GCC utilise l'extension de fichier pour déterminer si un fichier est C ou C ++. Fichiers C ont une minuscule .c extension, tandis que C ++ fichiers se terminent par .C ou .cpp.

Bien que le gcc commande peut compiler un fichier C ++, cette commande ne lie pas automatiquement avec diverses bibliothèques de classes que les programmes de C nécessitent généralement. Compiler et lier un programme en C ++ en utilisant la commande g ++ est facile parce qu'il fonctionne gcc avec les options appropriées.

Explorer les options du CCG

Voici la syntaxe de base de la gcc commande:

Options gcc noms de fichiers

Chaque option commence par un tiret (-) et a généralement un nom long, comme -funsigned-char ou -Finline-fonctions. De nombreuses options couramment utilisées sont courtes, cependant, comme -c, pour compiler seulement, et -g, pour générer des informations de débogage (nécessaire pour déboguer le programme en utilisant le débogueur GNU, gdb).

Vous pouvez voir un résumé de toutes les options du CCG en tapant la commande suivante dans une fenêtre de terminal:

homme gcc

Ensuite, vous pouvez naviguer à travers les options du CCG couramment utilisés. Habituellement, vous ne devez pas fournir des options CCG explicitement parce que les paramètres par défaut sont très bien pour la plupart des applications. Ce tableau présente certaines des options que vous pouvez utiliser du CCG.

Options de commun du CCG
OptionSignification
-ansiPrend en charge la syntaxe ANSI-que C standard. (Cette option disablessome caractéristiques GNU C-spécifiques, tels que the_asm et_Type demots-clés.) lorsqu'il est utilisé avec g ++, C ne supporte que la norme ISO ++.
-cCompile et génère uniquement le fichier objet.
-DmacroDéfinit la macro avec la chaîne "1"comme sa valeur.
-Dmacro = DEFNDéfinit la macro comme DEFN, oùDEFN est une chaîne de caractères de texte.
-ENe fonctionne que le préprocesseur C.
-jachère simple précisionEffectue toutes les opérations mathématiques en simple précision.
-CPAC-struct-returnRetourne tous struct et les valeurs de l'Union dans la mémoire, plutôt que inregisters. (Renvoi de valeurs de cette façon est moins efficace, mais au moins il est compatible avec d'autres compilateurs.)
-fPICGénère indépendant de la position code (PIC) adapté pour une utilisation dans la bibliothèque ashared.
-freg-struct-returnLorsque cela est possible, les retours struct etunion les valeurs des registres.
-gGénère des informations de débogage. (Le débogueur GNU peut utiliser thisinformation.)
-Je ANNUAIRERecherche dans le répertoire spécifié pour les fichiers que vous incluez l'parl'utilisation #comprendre directive du préprocesseur.
-L ANNUAIRERecherche dans le répertoire spécifié pour les bibliothèques.
-l BIBLIOTHÈQUERecherches la bibliothèque spécifiée lors de la liaison.
-mcpu = cputypeOptimise code pour un processeur spécifique. (cputype peut prendre plusieurs valeurs différentes -SOMe plus courantes sont i386, i486, i586, i686, Pentium, PentiumPro, Pentium2, pentium3, pentium4.)
-o FILEGénère le fichier de sortie spécifié (utilisé pour désigner le NomDe un fichier exécutable).
-00 (deux zéros)Ne pas optimiser.
-O ou -O1 (lettre O)Optimise le code généré.
-O2 (lettre O)Optimise encore plus.
-O3 (lettre O)Effectue optimisations au-delà de celles effectuées pour O2
-Os (lettre O)Optimise pour la taille (pour réduire le montant total de code).
-pédantGénère des erreurs si toutes les extensions non-standard ANSI areUsed.
-pgAjoute du code supplémentaire pour le programme de telle sorte que, lorsqu'il est exécuté, ce programgenerates informations que le gprofprogramme peut utiliser pour afficher les détails de synchronisation pour différentes parties du duprogramme.
-communGénère un fichier objet partagé (généralement utilisé pour créer la bibliothèque ashared).
-UMACROAnnule la définition des macros spécifiés.
-vAffiche le numéro de version de GCC.
-wNe génère pas de messages d'avertissement.
-W1, OPTIONPasse le OPTION chaîne (contenant les options de multiplecomma séparés) à l'éditeur de liens. Pour créer un librarynamed partagée libXXX.so.1, par exemple, utiliser thefollowing drapeau: -WL,-soname, libXXX.so.1.

» » » » Gnu C et C ++ compilateurs pour linux