Avatar RANNOU Robert

compilateur

par RANNOU Robert, mercredi 16 décembre 2009, 22:59
 

Un compilateur est un programme informatique qui traduit un programme source (écrit dans un langage source : C, java, ...), en un programme objet, (écrit dans un langage cible ou langage objet).  Le programme objet n'est pas obligatoirement directement exécutable.

En C, le compilateur intervient après que le préprocesseur ait fait des transformations du texte source (traitement des directives). Après la compilation proprement-dite intervient l'appel de l'assembleur qui produit un programme en langage machine.

Quand tous les fichiers (modules) formant une application ont été compilés, puis assemblés (appel de l'assembleur), on procède à l'édition de liens.

La commande cc 

La commande cc nom.c crée un fichier exécutable a.out, et l'exécution du programme se fait alors par la commande a.out.

Par défaut, la commande cc appelle :

et construit un exécutable a.out.

Des options permettent de réduire l'action de la commande cc à quelques opérations :

option

Actions de la commande cc

extension du fichier créé

-P préprocesseur .i
-S préprocesseur + compilation .s
-c préprocesseur + compilation + assembleur .o
-défaut préprocesseur + compilation + assembleur + édition de liens a.out

Le nom du fichier exécutable peut être différent de a.out en utilisant l'option -o suivi du nom du fichier exéctable que l'on veut créer.

cc nom.c -o nom

L'exécution du programe se fait en écrivant simplement nom sur une ligne de commande.

Options propres  à l'édition de liens

-lx cc nom.c -lx Appel de la librairie lx qui se trouve sous /lib ou /usr/lib et dont le nom réel est libx.a
-lm cc nom.c -lm Appel de la librairie libm.a
-lc cc nom.c -lc Appel de la librairie standard libc.a
-o cc nom.c -o création d'un fichier exécutable nom

Il est possible de lancer la "compilation "de plusieurs fichiers en une même commande :

cc nom2.c nom2.c nom3.c Production d'un exécutable a.out à partir de 3 fichiers source
cc nom2.c nom2.s nom3.o Production d'un exécutable a.out à partir d'in fichier sorce, ...

Liens :

» Glossaire du langage C