Aix-Marseille Université – Université de la Méditerranée Faculté des Sciences de Luminy |
Algorithmique & programmation en langage C
Henri Garreta |
Voici quelques explications sur lutilisation de Dev-C++, un excellent environnement de développement en C et C++ pour Windows XP (et versions antérieures) quon peut télécharger librement depuis le site www.bloodshed.net (téléchargements : www.bloodshed.net/dev/devcpp.html).
Avertissement. Léquipe de développement de Dev-C++ a donné son dernier signe de vie en février 2005, le produit est figé depuis ; on peut donc craindre une incompatibilité croissante avec les systèmes dexploitation en circulation. Ainsi, jai constaté que Dev-C++ ne fonctionne parfois pas sur des versions 64 bits de Windows Vista. Mais on mindique (merci Mathieu Pellegrin) quil tourne bien sur des versions 32 bits de ce système dexploitation. Quoi quil en soit, je suis preneur de documentations et/ou de comptes rendus dexpériences à ce sujet ! Si vous narrivez pas à faire fonctionner Dev-C++, sachez quun autre excellent outil pour faire du C sur Windows est Microsoft Visual C++, dont la version dite Express Edition est gratuite. Linstallation est un peu plus lourde que celle de Dev-C++, mais lutilisation ultérieure est aussi simple et agréable, et il y a un débogueur puissant et solide. Pour plus dinformation, voyez ici. |
En janvier 2006, le produit à télécharger est étiqueté
Dev-C++ 5.0 beta 9.2 (4.9.9.2) with Mingw/GCC 3.4.2 ; le fichier
lui-même se nomme devcpp-4.9.9.2_setup.exe
(les explications
suivantes mentionnent une version légèrement plus ancienne, mais
fonctionnellement identique).
Vous pouvez aussi obtenir ces fichiers en empruntant un des CD-Rom gravés à votre intention que je fais circuler parmi vous.
Linstallation de Dev-C++ ne pose pas de problème mais, pour que chacun soit bien rassuré, nous en montrons ici les étapes. Pour démarrer, exécutez le fichier téléchargé devcpp...setup.exe : après un premier panneau qui vous rappelle quil vaut mieux commencer par supprimer toute éventuelle installation précédente 1 de Dev-C++
vous obtenez la licence du produit, qui nest autre que la GPL usuelle dans le monde GNU :
Cliquez sur « I Agree ». Apparaît alors un panneau pour choisir les éléments à installer :
Laissez les cases à cocher comme elles sont (il est difficile de réduire significativement la place occupée par ce logiciel, qui nest pas très encombrant) puis cliquez sur « Next > ». Il est question alors du dossier dinstallation :
(dans le cas des ordinateurs partagés de la Fac, laissez C:\Dev-Cpp, cela minimisera le nombre de copies du logiciel installées sur chaque poste). Cliquez sur « Install », linstallation se fait quasiment sans besoin daide. Selon le système que vous utilisez, une question rituelle vous sera posée : « Voulez-vous installer Dev-C++ pour tous les utilisateurs de cet ordinateur ? »
Si vous êtes en train dinstaller Dev-C++ sur un système partagé répondez « Non », car vous navez probablement pas le droit de faire une « installation pour tous » ; sil sagit de votre propre système, répondez ce que vous voulez.
Linstallation est maintenant terminée. Quand vous cliquerez sur « Finish », Dev-C++ sera lancé et, si votre machine na pas gardé des traces dune installation précédente, vous aurez un message informatif :
et vous devrez ensuite choisir la langue et le thème (cest-à-dire laspect des boutons) de linterface. Les illustrations montrées dans la suite de cette notice correspondent aux choix : French, Gnome et XP Theme
Vous pouvez en outre activer des fonctions daide à la composition, comme la navigation parmi les classes et la complétion de code (ces fonctions sont surtout utiles si on programme en C++) :
Il est alors recommandé de laisser Dev-C++ créer un « cache » pour ces fonctions :
Cest un peu long, mais cela finit par se terminer :
Durant linstallation, un raccourci pointant sur Dev-C++ aura probablement été créé et placé sur le bureau ou dans la barre des tâches. Si ce nétait pas le cas, vous devez créer vous même un raccourci sur le fichier devcpp.exe qui se trouve dans le dossier Dev-Cpp. Par la suite, vous lancerez Dev-C++ en double-cliquant sur ce raccourci.
Selon vos goûts, vous pourrez ultérieurement personnaliser un certain nombre dautres éléments de linterface et de léditeur, en actionnant les commandes du menu Outils :
Par exemple, vous pouvez faire en sorte que les numéros de ligne apparaissent dans la gouttière (la marge gauche), comme dans les exemples de cette notice :
Notez enfin que vous pouvez alléger la barre doutils en choisissant les groupes de boutons qui y apparaissent. Pour cela, cliquez avec le bouton droit de la souris dans la barre doutils (mais pas sur un bouton) :
Fichier nouveau. Si votre programme tient dans un seul fichier et na pas besoin de bibliothèques particulières, vous pouvez utiliser Dev-C++ sans créer de projet. Pour cela il vous suffit de lancer Dev-C++ puis de créer un fichier source : commande Nouveau | Fichier Source du menu Fichier (beaucoup de commandes des menus sobtiennent aussi par des boutons de la barre doutils et/ou par des raccourcis clavier).
Enregistrez immédiatement ce fichier à laide des commandes Sauvegarder ou Sauvegarder Sous... du menu Fichier.
Attention :
- le fichier doit avoir un nom se terminant par .c
- faites attention au dossier dans lequel le fichier sera rangé (ce doit être un dossier que vous aurez créé en vue dy ranger vos travaux, non un dossier appartenant au système ou à Dev-C++)
Fichier existant. Dans le cas où vous voulez travailler sur un fichier qui existe déjà, vous pouvez louvrir dans Dev-C++ par la commande Ouvrir Projet ou Fichier... du menu du menu Fichier. Dautre part, si Windows est bien configuré (cest le cas, en principe, si linstallation sest bien passée), les icônes des fichiers .c ressemblent à lune des suivantes :
et vous pouvez alors lancer Dev-C++ directement en double-cliquant sur une telle icône.
Cela concerne le menu Exécuter :
Compilez votre programme à laide dune des commandes du menu Exécuter : Compiler, Compiler le fichier courant, Compiler & Exécuter ou Tout Reconstruire (dans le cas dun unique fichier source, toutes ces commandes en produisent la compilation).
Les erreurs à la compilation sont affichées dans une fenêtre en bas de lécran. En double-cliquant sur un message derreur on obtient laffichage, dans la fenêtre principale, du texte de lerreur signalé par une couleur spéciale et une marque dans la marge.
A titre dexemple, observez limage ci-dessous : les quatre lignes non vides de la fenêtre Compilateur constituent le signalement dune erreur. On y apprend que dans la fonction puiss, plus précisément à la ligne 6 du fichier C:\_\CAtelier\CCourant\CCourant.c, lidentificateur m na pas été déclaré. Pas avare de détails, le compilateur nous dit en outre que cest la première utilisation [de m] dans cette fonction, et que chaque identificateur non déclaré est signalé une seule fois dans chaque fonction où il apparaît.
En principe, le volet Classes de la fenêtre de gauche montre les structures, les variables globales et les fonctions de votre programme. En cliquant sur un de ces éléments la fenêtre principale se positionne sur lentité en question.
Exécutez votre programme par une des commandes Exécuter ou Compiler & Exécuter.
La console dexécution se ferme automatiquement à la fin de lexécution dun programme, ce qui ne laisse guère le temps de lire les éventuels résultats affichés. Pour empêcher cela, vous pouvez ajouter à la fin de votre programme la ligne
system("pause");
(system
est une fonction standard C, pause
est une commande MS-DOS/Windows qui produit laffichage du message « Appuyez
sur une touche pour continuer... » et met le système en attente
de la frappe dune touche) :
Une autre manière de garder ouverte la console dexécution consiste à lancer votre programme depuis une fenêtre MS-DOS (appelée, selon le système, « Invite de commandes », « Console MS-DOS », etc.) : vous saisissez et compilez votre programme à lintérieur de Dev-C++ mais pour lexécuter vous vous placez dans une fenêtre « Invite de commandes ». Dans ce cas vous ne devez pas ajouter linstruction system("pause"); à la fin de votre programme.
Il y a éventuellement un petit travail à faire pour se placer dans le répertoire qui contient le programme. La commande pour changer de répertoire est cd, celle pour lister les fichiers dun répertoire est dir. Enfin, pour lancer un programme il suffit de taper son nom. Voyez limage suivante :
Il est important de noter que cette manière dexécuter son programme permet dutiliser les arguments de la ligne de commande. Exemple, nouveau code :
Nouvelle exécution :
Si votre programme comporte plusieurs fichiers sources, ce qui est le cas normal quand on développe autre chose que de petits exercices, ou bien sil requiert des bibliothèques spéciales (graphiques, mathématiques, etc.) alors il est nécessaire de travailler avec un projet.
Fondamentalement, un projet est une liste de fichiers et un ensemble doptions, mémorisés ensemble dans un fichier dextension .dev.
On crée un projet par la commande Projet... du menu Nouveau
Pour ce qui nous occupe ici, choisir Console Application, Projet C et Langage par défaut comme ci-dessus. Il faut aussi trouver un nom pour le projet (ici MonGrandProjet), qui servira à létape suivante. Dès quon clique sur Ok on vous demande de sauver le projet (la fenêtre suivante peut être différente sur votre système) :
Une fois le projet créé, les commandes Nouveau | Fichier Source du menu Fichier et Projet | Ajouter au Projet du menu Projet permettent dajouter les divers fichiers sources. Les noms de ces fichiers saffichent dans le volet Projet de la fenêtre de gauche :
Des clics avec le bouton droit de la souris sur les éléments du volet Projet font apparaître un menu contextuel permettant également dajouter ou enlever des fichiers au projet :
Quand on travaille avec un projet comportant plusieurs fichiers sources, la commande Compiler du menu Exécuter est optimisée de telle manière quelle produit la compilation uniquement des fichiers qui en ont besoin, cest-à-dire ceux qui nont jamais été compilés et ceux qui ont été modifiés depuis leur dernière compilation (autrement dit: sont compilés les fichiers .c pour lesquels le fichier .o correspondant soit nexiste pas, soit a une date plus ancienne que celle du fichier .c).
La commande Tout Reconstruire du menu Exécuter produit la compilation de tous les fichiers, indépendamment de ces considérations de dates. Utilisez-la dès que vous avez limpression que la commande Compiler ne fait pas le travail quelle devrait et, en particulier, à la suite dune modification des options du projet (ces modifications ne touchent pas la date des fichiers sources).
Un débogueur est un outil pour exécuter un programme pas à pas et en permettant dexaminer le contenu des variables. Cela permet de comprendre le comportement de lapplication et comment ses variables évoluent. Cest un moyen précieux pour trouver les fautes de programmation, et aussi pour parfaire sa connaissance de la programmation en examinant de lintérieur comment les programmes marchent.
Pour quun programme puisse être contrôlé par le débogueur il faut que le fichier exécutable ait gardé certaines informations symboliques, comme les noms des variables et des fonctions, qui sont habituellement éliminées durant la compilation. A cet effet il faut positionner une option de léditeur de liens : commande Options du Projet du menu Projet, volet Compilation, choisir Editeur de liens et donner la valeur Yes à loption Générer des informations de débogage (laisser les autres options à No).
Après avoir mis à Yes loption Générer les informations de débogage il faut recompiler le programme avec la commande Tout Reconstruire du menu Exécuter (la commande Compiler risquerait de ne pas faire le travail).
Note 1. Dans certains cas, les actions précédentes ne suffisent pas à mettre Dev-C++ dans un état rendant possible le débogage. Une manière datteindre cet état à coup sûr consiste à ajouter la ligne « -g3 -gstabs » dans la fenêtre Compilateur: du volet Paramètres du panneau Options du projet (commande Options du Projet du menu Projet) :
Note 2. Lune et lautre des manipulations précédentes peuvent se faire en agissant sur des panneaux plus ou moins analogues obtenus à travers la commande Options du compilateur du menu Outils. Ces actions portent alors sur tous les projets que vous créerez et non uniquement sur le projet en cours :
Le volet Debug en bas de lécran montre les principales commandes du débogueur :
Attention. Il faut être tolérant, le débogueur nest pas un programme très robuste et, dans certaines circonstances, ses commandes semblent ne pas avoir deffet. En outre, faites attention à ne pas laisser des sessions de débogage actives par inadvertance, car cela met Dev-C++ dans un état malsain. En principe, la commande Arrêter lexécution du menu Debug fait quitter le débogage et remet Dev-C++ dans létat « normal ».
Il a deux manières principales de lancer le débogueur :
La manière la plus simple de placer un point darrêt consiste à cliquer dans la gouttière (la marge de gauche). Une marque dans la gouttière indique le point darrêt, ainsi quun surlignage de la ligne concernée. Dautre part, une flèche dans la gouttière montre constamment la ligne sur laquelle lexécution est arrêtée. Par exemple, la figure ci-dessous montre un moment dune session de débogage, avec lexécution arrêtée à la ligne 20, un point darrêt étant placé à la ligne 24 (les couleurs avec lesquelles sont surlignées certaines lignes peuvent être redéfinies par la commande Options de léditeur du menu Outils, volet Syntaxe, types Breakpoints et Active breakpoints) :
Un programme ne peut être arrêté que sur des instructions, évitez de mettre des points darrêt sur des lignes constituées de déclarations (des déclarations il ne reste aucune trace après la compilation).
Lorsque le débogueur est bloqué (sur un point darrêt ou consécutivement à lemploi de la commande Executer jusquau curseur) on doit le débloquer par une des commandes :
Examiner les variables. Pour faire afficher une variable dans le volet Debug à gauche de lécran il suffit de presser le buton Ajout variable ou bien de double-cliquer sur la variable. En fait, passer (lentement, soyez patients) le curseur sur la variable suffit la plupart du temps pour lajouter au volet Debug. La variable et sa valeur sont ensuite constamment affichées et on peut en observer lévolution pendant que le programme est exécuté.
Lorsque la variable est complexe, le volet Debug permet den examiner les éléments.
Note 1. Désinstaller toute trace dune installation précédente est particulièrement important si vous cherchez à réparer une installation de Dev-C++ qui ne fonctionne pas correctement.