| Conduite de Projet en C sous GNU/Linux | ||
|---|---|---|
| Précédent | Suivant | |
Le compilateur C (gcc) travaille en plusieurs étapes. Par défaut, la commande gcc exécute toutes ces étapes sur les fichiers donnés en paramètre. Il faut lui préciser une option pour qu'il s'arrête après une de ces étapes.
inclut les fichiers précisés et/ou étend les macros dans un fichier source (C ou assembleur) :
Utilisez l'option -E de gcc pour qu'il s'arrête après la précompilation.
transforme un fichier source C en un fichier source assembleur :
Utilisez l'option -S de gcc pour qu'il s'arrête après la compilation.
transforme un fichier source (C ou assembleur) en un fichier objet :
Utilisez l'option -c de gcc pour qu'il s'arrête après l'assemblage.
regroupe et relie plusieurs fichiers objet pour créer l'exécutable.
Vous avez écrit plusieurs fichiers C ou assembleur pour un programme de cartes :
Fichiers sources C
Fichier source assembleur avec inclusions et/ou macros.
fichier source assembleur sans inclusions ni macros.
Si vous voulez directement obtenir l'exécutable à partir de tous ces fichiers sources, tapez la commande :
gcc cartes.c distribuer.c dessiner.s compter_points.S -o cartes
Le compilateur gcc va alors créer les fichier
objets correspondants à chaque fichier source -
cartes.o, distribuer.o,
dessiner.o et compter_points.o -
puis relier tous ces fichiers objets en un fichier exécutable
cartes.Vous voulez arrêter gcc juste avant qu'il ne relie les fichiers objets ? Tapez alors :
gcc -c cartes.c distribuer.c dessiner.s compter_points.S
Vous voulez obtenir tous vos fichiers sources en assembleur :
gcc -S cartes.c distribuer.c dessiner.s compter_points.S
gcc crée alors les fichiers
cartes.s, distribuer.s, et ne
touche pas aux fichiers dessiner.s et
compter_points.S qui sont déjà en
assembleur.Vous voulez précompiler un de vos fichiers sources ? Pour voir par exemple comment sont étendues les macros que vous utilisez. Attention, gcc ne prend en compte que le premier fichier passé en paramètre et écrit le résultat sur la sortie standard, vous devez donc taper :
gcc -E cartes.c > cartes.i
Le gestionnaire d'archive (ar) permet de regrouper plusieurs fichiers objet.
Dans l'exemple précédent, vous pouvez décider d'archiver les fichiers objet dessiner.o et distribuer.o, par exemple pour les réutiliser pour un autre jeu de cartes. La compilation se fait alors ainsi :
Crée les fichiers objet dessiner.o et distribuer.o.
Ajoute les deux fichiers dessiner.o et distribuer.o dans le fichier archive libcartes.a, puis crée un index dans cette archive.
Crée les fichiers objet cartes.o et compter_points.o, puis relie ces derniers avec ceux inclus dans libcartes.a pour former l'exécutable cartes.
| Précédent | Début du document | Suivant |
| Le langage C | L'environnement de programmation |