Article     Discussion     Modifier     Historique     Forums     Salon IRC

GCC/GPP/G77 Utilisation de base : Chapitre 1

Un article de Games Creators Network.



Attention


Cet article est en attente du choix d'une licence par son auteur. Elle n'est pas soumise à la licence par défaut du GCN.

Cela signifie entre autre chose que si vous n'êtes pas l'auteur de cet article, vous n'avez probablement pas le droit de le modifier.


Sommaire

[modifier] Introduction

Gcc, G++ et F77 sont trois compilateurs du monde du logiciel libre.* Gcc est un compilateur C

  • G++ est un compilateur C++
  • G77 est un compilateur Fortran 77

La compilation est le procédé qui permet de passer du code source à notre executable. Elle s'effectue en 4 phases:

  • Preprocesseur: cette phase exécute toutes les directives commençant par le caractère#. Ces directives sont aussi appelées macros.
  • Compilation: la compilation permet de passer du C au langage assembleur. Toutes les optimisations de vitesse ou de mémoire peuvent se faire durant cette phase.
  • Assemblage: l'assemblage convertit le code assembleur en fichier objet qui est le code au format binaire + une table de symbole.
  • Création de lien: ici, on lie ensembles les différents symboles de chacun des fichiers objet. Un symbole étant un mnémonique attribué à une fonction, une variable ou une classe.

La compilation est souvent maintenant automatisée grâce à des scripts appelés Makefile.

Le nombre d'options présentes dans ces compilateurs est grand aussi je n'aborderai que celles qui sont essentielles. Je n'ai pas la prétention de réexpliquer les milliers de pages de manuel du compilateur.

[modifier] Compilation d'un ou plusieurs fichier source

Si on prend un fichier main.c où se trouve la fonction main ainsi que toute les fonctions nécessaires pour le programme on compilera de la facon suivant:

gcc -o fichier_executable main.c

Dans le cas où on a plusieurs fichiers source on utilise:

gcc -o fichier_executable fichier1.c fichier2.c

Si vous avez bien remarqué l'option -o se balade. Cette option indique le nom de l'exécutable une fois compilé. o comme Output_file soit fichier de sortie en français. Si aucune option -o n'est présente pour la compilation le programme s'appellera par défault a.out.

[modifier] Compilation par étape

Comme indiqué dans l'introduction la compilation se fait par etape. Précédemment nous sommes passés de la première étape à la dernier étape directement, mais on peut très bien s'arrêter avant la dernière étape. Il existe pour cela les options -E, -s et-c.Ces options se mettent juste aprés la commande gcc ou g++. Une seule de ces options peut être activée à la fois.

L'option -E permet de s'arrêter après le préprocesseur. Si aucun fichier de sortie n'est spécifié alors cela s'affiche sur l'écran. Cette option est utile quand on a besoin de debugguer des macros par exemple.

gcc -E -o main.E main.c

L'option -S permet de s'arrêter après la première étape de la compilation qui consiste de convertir le code source C ou C++ en assembleur. Ceci est peu utilisé si ce n'est pour faire des optimisations dans les cas critiques ou pour comprendre le fonctionnement du programme de facon detaillée.

gcc -S -o main.s main.c

L'option -c arrête avant l'établissement des liens, c'est-à-dire à la fin de l'assemblage. Cette fonction est trés utilisée pour la compilation séparée ou pour créer des modules.

gcc -c -o main.o main.c

Si aucune option n'est activée, on compile et on crée l'exécutable.

Exemples d'utilisation :

gcc -S -o fichier1.s fichier1.c /* On peut optimiser le code là */
gcc -c -o fichier2.o fichier2.c /* On peut reutiliser ce fichier objet pour un autre projet */
gcc -o prog fichier1.s fichier2.o fichier3.c /* On link le tout pour créer notre exécutable */

[modifier] Conclusion

Cette introduction à la compilation permet de compiler des programmes simples. La compréhension de l'outil de compilation est essentielle pour la programmation.

Pour résumer les diffèrents options de compilation permettent:

  • De pouvoir optimiser
  • De débugguer les macros
  • De créer des modules pouvant etre reutilisés


La création de l'exécutable se fait en 4 étapes, par abus de langage on appelle cela la compilation. Mais en fait la compilation n'est qu'une phase de cette contruction.

La syntaxe générale est la suivante: gcc [-c|-S|-E] [-o fichier_de_sortie] fichier_d'entrée...

Ce document a été publié sur la version 3 du G.C.N. par aetu.

  • Auteur Original : aetu
  • Date de publication : 27 août 2004

 

Rechercher
Installer l'extension de recherche Plus d'informations

 

Comprendre
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. - Benjamin Franklin

 

Partager
La connaissance est la seule chose qui s'accroit lorsqu'on la partage. - Sacha Boudjema

 

Créer
L'imagination est plus importante que la connaissance. - Albert Einstein

 

 

Le wiki en images Le wiki en images Image du mois: «Snowball: un prototype de jeu développé avec NeL.