Un programme l'"exécutable" est produit à partir d'un ensemble de fichiers- Source C (.c)
C'est en général sous ce format que vous
écrirez vos programmes. - Fichier (source) d'entête (.h)
Fichiers inclus dans les sources C ou assembleur, contiennent en
général les définitions de fonctions,
variables, macros,... Certains fichiers entête contiennent
la définition et la description d'images au format XPM ou
XBM (formats d'image propres au système X11) et ne portent
non plus l'extension (.h) mais (.xpm) ou (.xbm). - Fichier objet (.o)
Ces fichiers ne sont plus des fichiers texte comme les
précédents, mais des fichiers binaires. Inutile donc
de les éditer. Un fichier objet est l'image d'un (et d'un
seul) fichier source C ou assembleur, lisible non plus par nous
mais par l'ordinateur (le système d'exploitation - ici le
noyau Linux - pour être plus précis). - Fichier archive (.a)
Ce fichier est la réunion de plusieurs fichiers objet, sans
aucun lien entre eux. - Le Fichier exécutable
est le programme que nous exécuterons (il deviendra un processus). Ce dernier
fichier est la réunion de tous les fichiers objet et
archive nécessaires à la bonne marche du programme. Des liens sont créés entre ces fichiers,
afin qu'une partie du programme contenu dans un fichier objet
puisse par exemple appeler une autre partie contenue dans un autre
fichier objet (du point de vue de fichiers sources, que l'on
puisse par exemple appeler d'un fichier une fonction écrite
dans un autre fichier). Le compilateur et outils associésLe 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. - la compilation assempblage
Utilisez l'option -c de gcc
pour qu'il s'arrête après l'assemblage. - l'édition de lien
regroupe et relie plusieurs fichiers objet pour créer
l'exécutable. - exemple
/**
* main.c
* appel puis affiche le resultat de la fonction plus
* Exemple simple pour illustrer la compilation, edition de lien
*/
#include <stdio.h>
#include "plus.h"
main() {
int x=10;
int y=20;
printf("%d+%d=%d*n",x,y,plus(x,y));
}
| /**
* plus.c
* la fonction plus adition de 2 entiers
* Exemple simple pour illustrer la compilation, edition de lien
*/
int plus(int a, int b) {
return (a+b);
}
| gcc -c main.c ==> crée main.o
| gcc -c plus.c ==> crée plus.o | gcc -o plus main.o plus.o => création de l’exécutable plus
| |
SUITE: Gestionnaire de comiplation (automatisation de la production de programme) le Makefile
|
|