Série 17 (Niveau 0):
Prise en main de l'environnement de développement
Installation des outils | Prise en main de QtCreator | Fonctions de base de QtCreator | FAQ (questions fréquentes) |
Installation des outils
La réalisation du projet nécessite l'usage:
- d'un compilateur C++;
- d'un outil de construction/compilation de projet (nous utiliserons CMake);
- de la librairie graphique SFML;
- et d'un éditeur ou EDI (Environnement de développement intégré), nous suggérons l'usage de QTCreator.
Cette section décrit les procédures d'installation utiles si vous travaillez sur vos propres machines. A notez qu'il existe d'autres façon de travailler sur vos machines personnelles, comme décrit au semestre dernier (par exemple via la connexion à distance). Si vous travaillez sur les machines de l'EPFL, l'environnement est déjà installé et vous pouvez directement vous rendre à la section suivante.
- Si vous avez déjà installé un compilateur C++ (et MinGW pour Windows) au semestre précédent, il n'est en principe pas nécessaire de procéder à nouveau à cette partie de l'installation : l'étape de l'installation du compilateur (et de MinGW pour Windows) est alors superflue dans les guides ci-dessous (vous pouvez simplement sauter cette étape et installer uniquement les autres outils utiles).
- Les procédures d'installation décrites ci-dessous peuvent varier parfois selon les versions d'OS que vous utilisez. Vos retours d'expérience et commentaires sont bienvenus sur le forum Piazza du cours (sous la rubrique «Installations ..»).
- Pour Linux:
- Pour Windows
- Pour Mac Os
QtCreator : guide d'utilisation de base
Ce petit guide vous permettra de commencer à utiliser QtCreator comme outil de développement de code C++. Deux cas de figures sont évoqués:
- le développement d'un programme simple (n'utilisant qu'un seul fichier)
- le développement d'un projet complet, comme celui proposé dans le cadre de ce cours, et pour lequel nous utiliserons un outil de compilation particulier appelé CMake. C'est ce cas qui vous intéressera principalement pour le développement du projet.
Développement d'un programme simple (sur un seul fichier):
Si vous utilisez QtCreator pour écrire du code C++, tout programme doit être inclus dans ce que l'on appelle un «projet» (sans quoi vous ne pourrez ni le compiler ni l'exécuter).
- Lancez la création du projet :
- Choisissez un nom de votre choix pour le projet dans lequel vous voulez placer votre programme ainsi que le répertoire dans lequel sera stocké ce projet:
-
Choisissez qmake comme outil de compilation (vous pouvez aussi choisir Cmake, mais certaines manipulations, comme le renommage de fichiers sera un peu moins confortables)
- (Variante Linux) Sélectionnez directement Next à l'étape suivante (prenez le kit par défaut)):
- (Variante Windows/MacOs) Sélectionnez le kit correspondant à la version du compilateur choisi lors de l'installation de QtCreator (l'exemple ci-dessous est pour Windows):
-
Sélectionnez Finish:
Vous disposez alors d'un premier exemple de programme pre-rempli, que vous pouvez compiler en cliquant sur le petit marteau en bas à gauche de la fenêtre:

L'onglet «Issues» ou celui «Compile Output» permettent de voir les résultats de la compilation (dans cet exemple, la compilation a été faite avec le compilateur clang).
Note: si vous êtes sur votre propre machine et que la compilation ne se fait pas sur cet exemple simple, il faut vérifier que vous avez bien installé un compilateur C++ (comme montré dans la section précédente).
S'il y a des erreurs de compilation dans un programme, c'est dans la fenêtre «Issues» et «Compile output» qu'elles apparaitront. Il suffit de faire un clic droit avec la souris sur la ligne du message d'erreur pour que le curseur soit placé à la ligne fautive correspondante dans le fichier source:

Notez que votre programme se trouve dans le dossier Sources et qu'il s'appelle par défaut main.cpp à la création. Vous pouvez le renommer en faisant un clic droit sur le nom du fichier sous Sources et en sélectionnant l'option Rename. Pour vérifier que tout est en ordre avec votre installation, remplacez le contenu du programme principal main.cpp par ceci:
#include <iostream> #include <vector> int main() { std::vector<std::vector<double>> matrice { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} }; std::cout << "Bonjour, voici une matrice:" << std::endl; for (auto element : matrice) { for (auto val : element) { std::cout << val << " "; } std::cout << std::endl; } std::cout << std::endl; return 0; }
Compilez ensuite en cliquant à nouveau sur le petit marteau. Si votre installation du compilateur s'est faite correctement, vous devriez passer l'étape de la compilation avec succès.
Pour exécuter, cliquez sur la petite flèche verte en bas de la fenêtre:

Vous devriez voir s'ouvir une fenêtre avec le résultat de l'exécution.
1 2 3 4 5 6 7 8 9
Options de configuration du projet
Le fichier de configuration du projet (dans notre exemple test-cpp11.pro) peut être édité et modifié pour paramétrer différemment la compilation du projet.
Par exemple, si l'on a plusieurs compilateurs installés (gcc, clang ..) et que l'on souhaite tester le code avec un compilateur spécifique, on peut le spécifier en affectant le nom du compilateur à une variable QMAKE_CXX dans le fichier de configuration .pro du projet :
TEMPLATE = app CONFIG += console c++11 CONFIG -= app_bundle CONFIG -= qt QMAKE_CXX = g++ SOURCES += \ main.cpp
On peut également ajouter des options de compilation au moyen de la variable QMAKE_CXXFLAGS, comme ceci par exemple:
QMAKE_CXXFLAGS = -pedantic
Développement d'un projet complet (compilable avec CMake) :
QtCreator permet d'intégrer des projets compilables avec l'utilitaire CMake. Pour ce faire, il suffit d'ouvrir un fichier particulier appelé CMakeLists.txt
Nous vous indiquons ici comment procéder sur un petit projet fourni en exemple.
Commencez par télécharger l'archive sfml_with_cmake.zip dans un répertoire de votre choix. Puis dezzipez-la:
- sous Linux ou MacOs : dans un terminal, au niveau du répertoire dans lequel se trouve l’archive, tapez la commande unzip sfml_with_cmake.zip
- sous Windows (>=7) : ouvrez l'archive depuis l’explorateur de fichiers et faire un « drag & drop » du contenu vers le répertoire de votre choix.
Création du projet
Il s'agit maintenant de créer le projet dans l'environnement de développement QtCreator. Nous supposerons dans ce qui suit que le matériel fourni pour le projet se trouve dans le répertoire /sfmlCmake.
- ouvrez QtCreator
- dans QtCreator
File > Open File or Project
et sélectionnez le fichier appelé CMakeLists.txt dans le dossier src/ du répertoire du projet: - dans la fenêtre de configuration du projet qui apparaît alors, sélectionnez le kit correspondant à la version du compilateur choisi lors de l'installation de QtCreator (sous Linux, par défaut desktop); voici un exemple de sélection du kit pour Windows:
- cliquez sur la flèche Details associée à votre kit de compilation
-
Décochez toutes les options à part Defaut (ou Debug si Defaut n'existe pas) et précisez build/ comme nom pour le répertoire où seront placés les fichiers compilés et les exécutables. Il s'agit là d'un nom typique pour ce genre de répertoires;
Attention, le matériel fourni se base sur cette organisation des fichiers et il est important de la respecter pour le bon fonctionnement du projet dans QtCreator; dans notre exemple, le dossier build est donc indiqué comme sous-dossier du dossier sfmlCmake/
puis cliquez sur Configure project.Notez que ce protocole fonctionne pour des versions de QtCreator >= 4.5. Pour des versions antérieures, le menu est un peu différent à cette étape et il faut cliquer sur un bouton Run Cmake au lieu de Configure project.
Le matériel nécessaire à la compilation du projet est alors automatiquement créé. Vous devriez voir des messages défiler dans la fenêtre General messages et le processus devrait se terminer par le message « CMake Project was parsed successfully »:
- pour pouvoir naviguer de façon plus simple dans le matériel de votre projet, cliquez sur la petite flèche dans l'onglet Project
et sélectionnez l'option File system dans le menu qui s'affiche; puis Computer > TEST_SFML_WITH_CMAKE. Vous devriez alors avoir la vue suivante sur le contenu de votre projet: - procédez enfin à quelques petits réglages de base dans QtCreator qui vous permettront de travailler dans les conditions attendues pour le projet
Tools > Options > C++ > File Naming
ou sous MacOS:Qt Creator > Preferences > C++ > File Naming
choisissez alors hpp comme suffixe pour les fichiers d'entêtes (au lieu de h) et cpp comme suffixe pour les fichiers de définition. Décochez également la case «Lower case file names» afin de permettre d'avoir des noms de fichiers contenant des majuscules. - lancez la compilation en cliquant sur le petit marteau en bas à gauche;
cela devrait produire la sortie suivante dans la fenêtre Compile output:
- Pour lancez l'exécution, commencez par choisir la cible voulue (le matériel CMake fourni permet de générer trois exécutables différent ici: mandlebrot, vonkoch1 ou vonkoch2):
Cliquez ensuite sur la petite flèche verte en bas à gauche et vous devriez voir s'exécuter la cible choisie.La mise en place de votre projet se fera selon des modalités analogues.Modalités générales d'utilisation de Qt Creator
Quelques indications générales vous sont données ci-dessous pour le développement de projets y compris pour ceux compilables avec Cmake. Il ne s'agit ici que de quelques aspects fondamentaux seulement utiles si vous découvrez QtCreator. Pour une documentation plus poussée sur cet environnement de développement, se référer à la documentation officielle (https://doc.qt.io/qtcreator/index.html)
Reconstruction du projet
En principe, les outils de compilation séparée comme Cmake ne recompilent que ce qui est nécessaire suite aux dernières modifications dans le projet. Il est cependant parfois utile de relancer le processus de compilation/construction («build») en entier. Pour cela, faites simplement:
Build > Rebuild project «nom du projet»
Sélection du projet actif
Vous pouvez évidemment avoir plusieurs projets ouverts en même temps dans QtCreator. Pour sélectionner celui sur lequel vous voulez travailler à un moment donné, cliquez sur le bouton Projects sur le bandeau latéral à gauche et sélectionnez le nom du projet sous «Active Project».
Fermeture d'un projet
Lorsque vous voulez cesser de travailler sur un projet, faites simplement:File > Close «nom du projet»
A noter que cela ne supprime pas les fichiers sur le disque.Ajout/suppression de fichiers de nouveaux fichiers
Pour les projets configurés à partir d'un fichier CMakeLists.txt l'ajout et la suppression de fichiers nécessite d'exécuter des procédures particulières. Ces procédures permettent de mettre à jour le matériel de compilation.- Pour l'ajout d'un nouveau fichier:
- File> New file or Project.
- Choisissez «C++ Source File» ou «C++ Header File» (selon que vous souhaitez coder un fichier de définition ou un fichier d'entête).
- Stockez ce fichier dans le répertoire du projet.
- Exécutez Build> Run CMake pour que ce fichier puisse être pris en compte à la prochaine compilation.
- Pour la suppression/renommage d'un fichier: supprimez ou renommez le fichier dans le répertoire du projet avec les outils propres à votre système d'exploitation puis exécutez la commande Build > Run CMake
Exécution des commandes de compilation en mode «verbeux»
Il peut être utile de savoir occasionnellement quelle commande de compilation est utilisée exactement lors de la construction («build») du projet. Cela permet de savoir quel compilateur est utilisé et avec quelles options. On peut demander pour cela à QtCreator d'exécuter la compilation en mode «verbeux».
Pour cela cliquez sur le bouton Projects sur le bandeau latéral à gauche. Sous la rubrique Cmake, cliquez sur Add > Boolean. Un nouveau champs apparaît avec pour nom <Unset> et pour valeur «off». Editez le champs <Unset> et écrivez à la place CMAKE_VERBOSE_MAKEFILE. Cliquez ensuite sur le champ valeur pour le mettre à «on». Terminez en cliquant sur le bouton Apply Configuration Changes. Lors de la prochaine compilation, vous verrez s'afficher sous l'onglet «Compilation output» le détail des commandes utilisées.
FAQ (Questions fréquentes)
Evitez impérativement les accents, caractères spéciaux et espaces dans les noms de fichiers ou de répertoires où vous stockez vos projets. Si sous l'onglet "Issues/Problèmes" il y a des mises en garde lors de la compilation ou si le debugger ne fonctionne pas proprement, essayez de recréer le projet :- en le plaçant dans un dossier où vous êtes sûr.e d'avoir les droits d'accès ou d'exécution;
- en assurant que l'accès vers votre projet ne comporte pas de caractères spéciaux ni d'espaces;
- en veillant à ce que le dossier build soit dans le même dossier de projet et au même niveau que le dossier src lors de la configuration du projet (tel qu'indiqué dans le tutoriel ci-dessus);
- et en ne gardant que la perspective Debug ou Default lors de la configuration du projet.
Cette section sera enrichie au fur et à mesure que des questions se présentent. N'hésitez pas à nous solliciter sur le forum Piazza du cours pour les questions techniques relatives à l'utilisation de QTCreator. Nous ferons de notre mieux pour y apporter rapidement des réponses et enrichir cette liste. - Pour l'ajout d'un nouveau fichier:
- Comment agrandir la taille des fontes de l'éditeur de QtCreator
- Comment agrandir la taille des fontes et boutons de QtCreator
- Comment spécifier plusieurs cibles de compilation avec qmake
Comment désactiver les «warnings» en ligne dans l'éditeur
Dans certaines versions récentes de QtCreator, les mises en garde du compilateur («warning») s'affichent dans l'éditeur au fur et à mesure de la rédaction du code:

Tools > Options > Displaypuis décocher l'option «Annotations next to line»
Comment saisir des valeurs d'input dans QtCreator
Dans les programmes nécessitant de faire une entrée clavier (lecture via cin), QtCreator lance une console (terminal) dans lequel réaliser la saisie. Si une telle console ne s'affiche pas, vérifiez que dans
Projects > Runl'option «Run un terminal» est bien cochée. A noter qu'il est possible de configurer le chemin utilisé par QTCreator pour trouver le terminal:
Options... > Environment > System > Terminal(voir ceci en complément si nécessaire)
Comment Sélectionner les cibles à compiler
Lorsque le projet contient de nombreuses cibles, il peut être long à compiler. Il est possible de ne sélectionner qu'une seule cible en procédant comme suit (dérouler la flèche "Détails" pous choisir la cible) :

Comment agrandir la taille des fontes de l'éditeur de QtCreator
pour configurer l'éditeur (couleur du fond d'écran, taille des fontes etc.):
Tools > Options >Text Editor > Font & Colorsla taille des fontes se spécifie sous «Size».
Comment passer des arguments en ligne de commande QtCreator
Si l'on souhaite passer des arguments au programme principal (en ligne de commande), faut aller sur «project» (avec la petite pince sur le bandeau latéral gauche) et saisir les arguments dans le champs «Command line arguments» :

Comment agrandir la taille des fontes et boutons de QtCreator
Sur certaines installations, il arrive que l'interface graphique de QtCreator apparaîssent avec des fontes et des boutons trop petits. Ce problème et les solutions qui s'y rapportent sont discutés ici. Nous avons testé la solution suggérée sous Windows (où le problème semble le plus fréquent) et elle semble fonctionner: il faut donc créer un fichier texte, par exemple scaled.txt , puis y écrire :
@echo off set QT_SCALE_FACTOR=2 C:\Qt\Tools\QtCreator\bin\qtcreator.exe
Le chemin doit bien sûr être adapté si vous n'avez pas placé QtCreator a l'endroit par défaut. Ensuite il faut renommer le fichier en scaled.cmd et lancer ce scripts à chaque fois que l'on souhaite lancer Qtcreator en version augmentée. Le grossissement *2 est à adapter selon vos besoins. Libre à vous de jouer avec le «scale factor» pour avoir la taille souhaitée. A noter que le script met alors un peu de temps a lancer l'IDE, il faut attendre environ 5-6 secondes.
Comment spécifier plusieurs cibles de compilation avec qmake
Le tutoriel mis à disposition pour les projets avec un seul fichier est vraiment conçu dans l'optique de n'avoir justement qu'un seul fichier. Si vous y mettez plusieurs fichiers contenant des main, le compilateur échouera en vous disant qu'il y a la définition de plusieurs programmes principaux pour le projet.
Une façon très basique de procéder est de choisir l'exécutable, avant de lancer la compilation, dans le fichier .pro lié au projet:
SOURCES += main1.cppou
SOURCES += main2.cppà la place de :
SOURCES += main1.cpp \ main2.cppAutrement, il est recommandé de passer plutôt par l'option avec CMake (dont un petit guide de rédaction est fourni en semaine 17 : ici)
Retour à la série