6- La compilation du C sous Linux
-
Compiler, sous Linux, un simple programme (monilitique) en
langage C
Un programme monolitique est un programme qui est
entièrement contenu dans
un seul fichier.
C'est le cas de tous les petits programmmes donnés en
exemple dans les bases du langage C, et dans le tutoriel langage
C.
Dans ce cas, la compilation est très simple, dans un
terminal, positionnez vous dans le répertoire qui contient
votre source C et tapez la commande suivante ( en partant du
principe que votre fichier s'appele programme.c ):
cc programme.c -o programme.exe
Si le compilateur trouve des erreurs de syntaxe dans votre
programme, il vous le dira. . .
Si il n'y a pas d'erreurs de syntaxe dans votre programme, le
repertoire contiendra alors un
fichier programme.exe, qu'il vous suffira d'executer en tapant
:
./programme.exe
A noter :
L'option '-o' de la commande cc permets de
spécifier le nom de l'exécutable qui sera
créé.
Cette option n'est pas obligatoire, si elle n'est pas
spécifiée, l'exécutable créé sera
appelé par défaut 'a.out'
L'extension '.exe' n'est pas non plus obligatoire sous GNU/Linux;
elle est seulement pratique pour voir rapidement dans un repertoire,
quels sont les fichiers binaires ( exécutables ).
Ainsi vous auriez aussi bien pu taper :
cc programme.c -o programme
./programme
ou bien :
cc programme.c -o programme.bin
./programme.bin
-
Compiler, sous Linux, un programme 'multi-fichiers' en
langage C
Un programme 'multi-fichiers' est un programme dont le source est
éparpillé entre plusieurs fichiers source C.
Ceci est tres utile, dès que vous commencez a faire de
gros programmes, qui vont contenir plusieurs millers de lignes de
code.
En effet, si on se retrouve avec 10000 lignes de code ( ce qui
fait un programme moyen ) dans un seul fichier source, il est
tres difficile de lire et de comprendre le source.
De plus, il est tres utile de regrouper dans un fichier source C,
toutes les fonctions qui ont un point commun.
Il est alors d'usage de séparer le code dans plusieurs
fichiers.
Par exemple :
Nous disposons des fichiers sources suivants :
programme.h
main.c
interface.c
callbacks.c
support.c
A noter :
Le fichier programme.h devra contenir les prototypes de toutes
les fonctions qui seront
utilisées dans les différents fichiers *.c.
De plus, chaque fichier *.c contiendra, au debut, une ligne :
#include "programme.h"
Ceci est necessaire pour que le compilateur puisse
vérifier que l'appel, dans
interface.c, d'une fonction qui se trouve dans support.c, est
correct.
Pour compiler tous ces sources C, et créer un seul
executable, dans un terminal, positionnez vous dans le
répertoire qui contient vos sources C et tapez la commande
suivante :
cc main.c interface.c callbacks.c support.c -o programme.exe
Si le compilateur trouve des erreurs de syntaxe dans votre
programme, il vous le dira, c'est l'un des avantages d'utiliser
Linux, le systeme ( ici le compilateur =|-} vous parle, et tout est
plus facile.
Si il n'y a pas d'erreurs de syntaxe dans votre programme, le
repertoire contiendra alors un fichier programme.exe, qu'il vous
suffira d'executer en tapant :
./programme.exe
A noter :
Il ne faut pas mettre le fichier programme.h dans la ligne de
compilation, car
ce fichier est d'ores et déjà inclus dans les
fichiers *.c, grace a la ligne :
#include "programme.h"
|
|