Série 2 (Niveau 0):
Édition, compilation et exécution de programmes avec un simple éditeur
- Une variante de cet exercice est disponible dans l'exercice pas à pas (page 8) de l'ouvrage C++ par la pratique
- L'utilisation d'Emacs pour l'édition de programmes est décrite dans l'annexe A (page 389) de ce même livre.
- Les mini-références des éditeurs du cours sont disponibles ici : pour Emacs et pour Geany.
Configuration de Geany
Cette configuration ne doit en principe se faire qu'une fois au début du cours et non pas à chaque utilisation de Geany.1. Norme du compilateur
Pour tout le monde (quelque soit votre façon de travailler) :
Ce cours utilise la norme dite « C++ 11 » du C++. Ce n'est pas encore très important pour le moment, mais si vous voulez éviter des erreurs de compilation plus tard, nous vous invitons à configurer votre compilateur pour qu'il compile suivant cette norme.
Cela se fait en ajoutant simplement l'option -std=c++11
au compilateur (Note : Il n'est pas question ici de ceux qui subissent le bug MinGW sous Windows et doivent garder -std=gnu++11
).
Par exemple dans Geany :
- aller dans le menu : Construire -> Définir les commandes de construction (Build -> Set Build Commands)
- Dans la colonne Commande (Command), rajouter
-std=c++11
en fin de ligne dans les deux lignes Compiler (Compile) et Construire (Build) :g++ -Wall ... -std=c++11
(attention à bien mettre une espace avant le-std
!)
- Valider ensuite pour enregistrer les modifications.
2. Plus d'outils sur Geany
Pour ceux qui utilisent Geany :
L'éditeur Geany est très configurable. Il peut être bon pour votre productivité d'ajouter plusieurs modules intéressants. Allez dans Tools -> Plugin Manager et choisissez ceux qui vous parlent.
Personnellement, je vous conseille :
- Addons
- Auto-close
- File Browser
Exercice 0 : mon premier programme
Les codes sources des programmes C++ sont, à l'instar de la plupart des langages de programmation, de simples fichiers texte. N'importe quel éditeur de textes permet donc d'écrire un programme en C++. Nous vous proposons d'utiliser votre éditeur favori (par exemple emacs, geany ou gedit), déjà utilisé au cours de la série 2. L'un des avantages de ces éditeurs est qu'ils possèdent un mode C++ agréable (ils présentent les programmes avec une mise en page et une coloration adaptées ; on appelle cela la mise en évidence syntaxique).
Le but de cet exercice est justement de vous apprendre, pas à pas, à
- éditer un programme ;
- compiler un programme c++ ;
- corriger les erreurs de compilation.
Étape 1 : Éditer un programme
À l'aide de votre éditeur favori (sur votre machine vous avez installé geany, mais sur les machines de l'EPFL il y en a d'autres comme par exemple emacs, ou gedit), ouvrez (= créez) le fichier salut.cc. Faites-le dans un dossier de votre choix sur votre machine ou dans Desktop/myfiles/Programmation/cpp/serie02/ par exemple sur les machines de l'EPFL.A l'aide de Geany
Vous remarquerez que certains mots apparaissent colorés! Sauvegardez le programme :
- Geany: Ctrl-s ou via le menu File -> Save
- Emacs: Ctrl-x Ctrl-s ou via le menu File -> Save (current buffer)
Annexe : structure du programme
- La première ligne (#include <iostream>) ordonne au compilateur de lire (et d'inclure) le contenu de la bibliothèque iostream avant de compiler le programme. Cette bibliothèque contient des définitions de commandes (et/ou variables) utilisées dans la suite du programme. Dans notre cas, il s'agit de la définition de cout, de la constante endl et du fonctionnement de l'opérateur <<.
- La seconde ligne est nécessaire pour indiquer au programme que vous allez utiliser les fonctions de la bibliothèque standard (std). Nous verrons plus tard dans le cours le rôle et l'utilisation de ces éléments appelés «espaces de noms» (namespaces).
- La cinquième ligne (en comptant les lignes vides) indique le début du programme. Les instructions comprises entre l'accolade ouvrante { et l'accolade fermante associée } constituent la définition du programme principal (la fonction main), c'est-à-dire les instructions qui seront effectivement exécutées au lancement du programme (c'est-à-dire à l'invocation de la fonction main).
- La sixième ligne affiche «Bonjour tout le monde !» à l'écran, suivi d'un retour à la ligne (endl).
Étape 2 : compiler le programme
Avant d'être exécuté, un programme C++ doit être compilé : le fichier texte contenant le code source doit être traduit en langage machine. On effectue cette opération à l'aide d'une commande de compilation (c.f. la mini-référence premiers pas en C++), qui peut être tapée dans une fenêtre Terminal, ou obtenue depuis votre éditeur favori, comme nous vous le proposons dans cet exercice.
Remarque préliminaire : en fonction de la configuration de votre environnement et de l'éditeur que vous utilisez (lequel va appeler le compilateur, mais ne confondez pas les deux !!), il se peut que le compilateur vous donne à ce stade du cours des "Warning:" (message d'alerte, mais pas d'erreur fatale). Ignorez-les pour le moment, ces "Warning:" devraient disparaitre dans les semaines qui viennent (dans deux semaines exactement ;-) )
Dans le menu Build, cliquer sur l'option Build. Vous pouvez également utiliser le raccourci F9. Un message tel que celui ci-dessous doit apparaître dans la fenêtre du compilateur au bas de Geany :Si vous n'avez pas sauvegardé le fichier, Geany le sauvegardera automatiquement pour vous. Le buffer du dessous montre les messages de compilation. Attendez jusqu'à voir apparaître un message indiquant la fin de la compilation :
Si la compilation s'est déroulée sans problème (elle se termine avec le message «Compilation finished successfully.»), testez votre programme : en utilisant un terminal, déplacez-vous (cd) si besoin est dans le répertoire ~/Desktop/myfiles/Programmation/cpp/serie02 et lancez votre programme en tapant
Vous pouvez aussi exécuter votre programme dans geany : dans le menu Build, choisir Execute ou utiliser le raccourci clavier F5.
Vous pouvez également tester votre programme directement depuis Geany en cliquant sur le bouton Execute ou en utilisant le raccourci F5.
Étape 3 : erreurs de compilation
Nous allons maintenant nous intéresser à la correction des erreurs d'un programme, en tout cas celles que le compilateur peut détecter.Cela vous arrivera souvent, et le compilateur C++ est assez fort pour trouver des erreurs. Apprenez donc à les comprendre et si vous avez du mal, n'hésitez pas à poster sur le forum du cours !
Il existe divers types d'erreurs :
Les erreurs d'implémentation et d'algorithme seront étudiées plus tard dans le cours, d'un point de vue pratique (avec la mise en oeuvre de procédures de déverminage - i.e. utilisation de débogueur et de tests logiciels) plutôt que théorique (il existe en effet un certain nombre de tests formels, mais ce genre de technique est trop complexe pour être abordée dans ce cours d'introduction). Finalement, les erreurs de conceptions relèvent elles du domaine de l'ingénierie informatique (le «génie logiciel»), et ne seront elles non plus pas traitées dans ce cours. |
Pour commencer, introduisez volontairement une erreur de syntaxe dans votre programme (supprimez par exemple la dernière accolade ou le dernier point-virgule).
Relancez ensuite la compilation. Vous devriez obtenir un message indiquant le fichier où se trouve l'erreur (salut.cc), la ligne concernée, ainsi que le type d'erreur:
... Compilation failed.
Cliquez avec la souris sur le message d'erreur et Geany positionnera alors le curseur sur le fichier et la ligne concernés. Vous pouvez passer d'une erreur à la suivante au moyen du menu Build -> Next Error.
Corrigez l'erreur, et relancez la compilation.
Retour à la série