Trousse de survie, le compilateur Borland
1 Quelques notions de base
Vous écrivez votre programme en C, dans un fichier source. Généralement, les fichiers source C, ont l'extension .c. Soit demo.c, par exemple.
Le compilateur procède ensuite en deux étapes principales. Il traduit
d'abord votre fichier en langage machine qui porte l'extension .obj en
Borland C++, soit par exemples demo.obj. Un tel fichier est un
fichier objet.
Les fichiers objets sont ensuite transformés en exécutables (extension
.exe). Cette dernière opération s'appelle l'édition de liens
(linking en anglais). En effet, votre programme peut faire appel
à certaines fonctions qu'il ne définit pas, comme les fonctions de la
librairie standard (entrées/sorties, opérations arithmétiques un peu
complexes...) ou les fonctions graphiques de la MacLib.
L'édition de lien trouve ces fonctions dans les
librairies du système et insère leur code dans l'exécutable.
2 Compilation et édition de liens avec Borland C++
2.1 Création d'un projet
En Borland C++, les règles de production d'un exécutable sont
définies dans un fichier projet (extension .ide). Les projets
que nous utiliserons en cours sont tous du même type. Voici comment
les créer
-
Vous positionner dans votre répertoire de travail (disons C:\TD\) et créer un nouveau
dossier (menu Fichier de la fenêtre du répertoire TD, sélection Nouveau ...Dossier). Le nommer Essai, par exemple.
Vous avez créé un nouveau dossier que l'on pourra référencer par le nom
C:\TD\Essai.
- Lancer Borland C++, par exemple par le sous-menu Programmes, à gauche de la barre de menus en bas de l'écran.
- Dans le menu File, sélectionner New ...Project. Une fenêtre de dialogue apparaît.
- La fenêtre permet de définir certaines caractéristiques du
projet. Il sera impossible de les changer toutes par la suite, il convient
donc d'être rigoureux.
-
Changer le nom du projet, dans la première case. Votre projet
est demo, dans le
répertoire que vous venez de créer. Soit C:\TD\Essai\demo.ide.
- Le type du projet (Target type) est Application. Sélectionner ce type.
- La plate-forme est WIN 32 (ce paramètre est normalement
déjà configuré correctement).
- Sélectionner le mode Console, en bas à gauche, dans la
case Target model.
- Cliquer sur Advanced dans la barre de boutons à droite
(l'icône est assez remarquable). Une nouvelle fenêtre apparaît.
-
Dans Initial node, sélectionner .c node.
- Des-sélectionner les case .rc et .def.
- Cliquer sur Ok.
- Cliquer sur Ok.
Une nouvelle fenêtre apparaît, avec un petit arbre qui
représente les dépendances pour construire l'exécutable demo.exe. On peut éditer les noeuds de cet arbre, en
utilisant le menu contextuel qui apparaît en cliquant (bouton de
droite) sur ces noeuds, mais c'est inutile si vous avez bien suivi
les étapes ci-dessus.
Enfin, on peut très bien, pour démarrer un nouvel exercice, copier
un projet déjà existant au lieu d'en créer un nouveau de toutes
pièces.
On peut alors lancer Borland C++ en double-cliquant sur l'icône du
projet (elle ressemble à un jeu de construction) et seulement sur
celle-ci.
Il faut ensuite changer quelques attributs, comme le nom du
projet et le nom du fichier source. Attention tout de même, le projet
copié doit être de type Application et de mode Console.
2.2 Compilation d'un programme
Créer le fichier source demo.c. Pour cela, on peut
double-cliquer avec le bouton de gauche sur demo.c dans l'arbre
du projet. Une fenêtre d'édition va s'ouvrir. Rentrer le texte du
programme, par exemple :
#include <stdio.h> /* définitions de types pour les entrées/sorties */
/*
main est la fonction principale,
elle ne prend pas d'argument et ne retourne rien
*/
void main(void)
{ /* début de main */
printf("Coucou !!!\n"); /* afficher une chaîne sur la console */
getchar(); /* attendre une entrée pour terminer */
} /* fin de main */
(les commentaires sont délimités par /*
...*/
.)
Au cours de l'écriture du programme, il est vivement recommandé de
sauver le fichier de temps en temps (menu File, sélection Save). Si vous oubliez de le faire, un plantage de votre machine
entraînera la disparition de votre oeuvre...
La production de l'exécutable est déclenchée par la sélection Make all du menu Project. Diverses boites de dialogue
apparaissent, ainsi que surtout une fenêtre de messages. Cette
fenêtre annonce les phases de compilation et d'édition de liens et les
erreurs. Il y a deux types d'erreurs. Les messages précédés d'un
point d'exclamation jaune sont des avertissements (par exemple, une
variable est déclarée et n'est pas utilisée), ils n'empêchent pas la
production de l'exécutable. Les messages précédés d'un point
d'exclamation rouge sont des erreurs qu'il faut corriger. En
double-cliquant sur le message d'erreur, on se retrouve positionné sur
la ligne de source qui a provoqué l'erreur.
Les erreurs qui surviennent pendant la compilation, sont généralement
des erreurs dans l'écriture du programme, elles se réparent
en éditant le fichier source.
Les erreurs qui surviennent pendant l'édition de liens proviennent le
plus souvent d'une faute d'orthographe dans le nom d'une fonction
de librairie (print au lieu de printf, par exemple). Elles
se traduisent par un message Unresolve external.
Une mauvaise configuration de votre projet ou de votre compilateur
pourra également entraîner ce type d'erreurs, au moment ou le
compilateur ou l'éditeur de liens tentent d'accéder aux fonctions de
librairie. Vos aurez alors droit à des erreurs Cannot find
include file ou Unresolve external. En particulier, cela
arrivera si vous n'avez pas de projet actif.
3 Exécution
On lance l'exécution du programme par l'icône éclair de la barre
d'icônes de Borland C++, on peut aussi passer par la sélection Run du menu Debugger. (Attention : si l'exécutable n'est plus à
jour, une recompilation sera lancée.)
Une fenêtre console
apparaît. Cette fenêtre se fermera automatiquement quand le programme
se terminera. Ainsi, pour éviter de se recuire à l'apparition fugace
d'une fenêtre, le programme demo comprend un appel à getchar qui attend que l'utilisateur frappe enter au clavier avant de
revenir.
3.1 C'est comment qu'on freine ?
On peut interrompre l'exécution en cours par l'icône rouge qui
ressemble à une patte, le contrôle passe alors au debugger. On relance
l'exécution par Run (icône éclair).
On peut
aussi terminer définitivement l'exécution en cours en fermant la
fenêtre console en cliquant sur la croix en haut et à droite.
3.2 Principales fonctions du debugger
-
Run Icône éclair, lancer ou relancer l'exécution.
- Breakpoint En cliquant dans la barre de gauche de la
fenêtre d'édition. Pose un point d'arrêt dans l'exécution du
programme.
- Step Icônes avec les flèches pointillées. Exécuter une
ligne du programme. Si la ligne courante est un appel de fonction,
Step into position l'exécution au début de cet appel, tandis que
Step over exécute complètement l'appel.
- Terminate Dans le menu Debugger. Termine
l'exécution en cours. On peut aussi fermer la fenêtre console.
- Evaluate Dans le menu Debugger. Fait apparaître une
fenêtre où l'on peut évaluer des expressions C. Utile pour connaître
le contenu d'une variable.
3.3 Diverses options
Borland C++ est une véritable usine à gaz. Il doit pouvoir tout faire,
dès lors, lorsque l'on exploite qu'une infime sous-partie de ses
fonctionalitées, certaines particularités peuvent être gênantes.
3.3.1 Mais où va-t-il donc chercher ses fichiers ?
Ce document a été traduit de LATEX par
HEVEA.