OpenClassrooms

QtWorkbench : compilez vos projets Qt sous Code::Blocks !

OpenClassrooms
En Semi-présenciel Paris

Prix à consulter
Ou préférez-vous appeler directement le centre?
18088... Voir plus

Infos importantes

Typologie Formation
Méthodologie En semi-présentiel
Lieu Paris
  • Formation
  • En semi-présentiel
  • Paris
Description

Grâce à cette formation vous pourrez acquérir les connaissances nécessaires qui vous permettrons d’ajouter des compétences à votre profil et obtenir de solides aptitude qui vous offriront de nombreuses opportunités professionnelles.

Installations (1)
Où et quand
Début Lieu
Consulter
Paris
7 Cité Paradis, 75010, (75) Paris, France
Voir plan
Début Consulter
Lieu
Paris
7 Cité Paradis, 75010, (75) Paris, France
Voir plan

Programme

Introduction du cours

Attention, ce tutoriel n'est pas à jour car le plugin ne l'est pas non plus. Si vous souhaitez utiliser Qt avec MinGW, je vous recommande de vous diriger sur l'IDE QtCreator car vous devez utiliser la version 4.4.x de Qt pour ce tutoriel, ainsi qu'une certaine version de Codeblocks pour que tout fonctionne correctement !

Si vous souhaitez utiliser uniquement Code::Blocks pour développer et compiler un programme utilisant la bibliothèque Qt (signaux et slots personnalisés compris), ce tutoriel est fait pour vous ! Celui-ci vous apprendra à installer et configurer le plugin QtWorkbench, et vous expliquera comment configurer un nouveau projet utilisant ce plugin.

Ce tutoriel a été réalisé pour les utilisateur de Windows, cependant Code::Blocks étant une application cross-platform, il n'y a pas de raisons que cela ne soit pas compatible avec les autres plateformes, mais je ne garantis pas que cela fonctionnera, à vous de tester ! ;)
Vous pouvez bien sûr utiliser les commentaires de ce tuto pour indiquer aux zéros si cela a fonctionné ou non.

Avant de débuter ce tutoriel, je tiens à remercier y.pagles pour le développement de ce plugin (Dont la page du projet est disponible ici).

Installation et configuration de l'environnementTéléchargements

Téléchargeons sans plus attendre les versions des logiciels qu'il nous faut :
1. Qt 4.5.3 (ou le SDK) ou une version antérieure (les versions 4.6.x n'ont pas l'air de fonctionner)
2. MinGW (sauf si vous souhaitez utiliser la version fournie avec le SDK de Qt).
3. la Nighty Build 5382 de Codeblocks.
4. Le plugin QtWorkBench (Téléchargez le fichier se terminant par l'extension 'cbplugin').

J'ai mis certains des fichiers sur mon FTP au cas où des liens seraient morts.

Installations

Commencez par installer Qt, c'est le plus long ;) .

Ensuite installez MinGW (n'oubliez pas de cocher le compilateur g++ et aussi l'option MinGW-Make).

Installez la Nighty build de Code::Blocks.

Si vous ne savez pas installer une Nighty bluid, ne vous inquiétez pas, voici un tutoriel de Nesquik69 & Xaviou qui vous aidera : Installez et maîtrisez à fond Code::Blocks !.

Lancez Code::Blocks, allez dans le menu Plugins -> Manage plugins.
Cliquez sur le bouton Install new et allez chercher le plugin téléchargé précédemment.

Cette manipulation ne nécessite normalement pas le redémarrage de Code::Blocks.

Fermez la fenêtre en appuyant sur Close.

Configuration des variables globales

Nous configurons ici le répertoire d'installation de Qt dans Code::Blocks afin que ce dernier sache où Qt a été installé et que l'on n'ait pas à le redéfinir ultérieurement.
Il s'agit tout simplement d'indiquer à Code::Blocks où est installé Qt et où chercher les fichier de configuration de compilation mkspecs.

Allez dans le menu Settings -> Global variables.
Si la variable globale qt4 n'existe pas, créez la.

Le champ base permet d'indiquer le répertoire d'installation de Qt (C:\Qt\4.5.3 si vous avez installé Qt par défaut).

Si vous avez installé la version SDK de Qt, alors le chemin est le suivant : C:\Qt\2009.05\qt

La seconde manipulation consistera à spécifier les champs User-defined fields.

Dans la première colonne indiquez mkspecs.
Dans la seconde colonne, indiquez $(#qt4)/mkspecs.

Fermez la fenêtre en appuyant sur Close.

Configuration du plugin

QtWorkbench nécessite aussi que l'on spécifie le répertoire d'installation de Qt, ainsi que le répertoire de configuration du compilateur.
Nous allons utiliser la variable globale créée précédemment dans Code::Blocks.

Rendez vous dans le menu Settings -> Environment.
Sélectionnez Qt Workbench dans la liste déroulante.

Dans la boîte de dialogue Qt Installation Directory, indiquez $(#qt4).
Dans la boîte de dialogue Make Specifications Directory, indiquez $(#qt4.mkspecs).
La dernière option vous permet de sélectionner le compilateur de votre choix. Il est recommandé de laisser default.
Validez en appuyant sur OK.

Création et configuration du projet

Maintenant que votre IDE est correctement configuré, deux solutions s'offrent à vous :

- Vous pouvez télécharger ce projet de base vide (QtProject) et y ajouter les codes source que vous voulez compiler. Dans ce cas, vous pouvez passer les prochaines instructions de configuration du projet et aller à la sous-partie Compilation du projet qui se situe à la fin de ce chapitre.

- Sinon vous pouvez continuer ce tutoriel afin de créer et/ou configurer vous même votre projet.
Sachez que les modules de Qt utilisés pour ce projet sont QtGui et QtCore, si vous souhaitez utiliser d'autres modules, suivez les instructions de ce chapitre et adaptez la configuration en fonction de votre projet (Vous pouvez reprendre mon projet de base si vous le souhaitez).

Le contenu des manipulations suivantes de ce chapitre devront être ré-itérées à chaque nouveau projet.

Création du projet

Afin de pouvoir utiliser le plugin QtWorkbench, nous allons commencer par créer un projet vide.

Allez dans le menu File -> New -> Project.
Sélectionnez Empty Project et cliquez sur Go.

Cliquez sur Next.
Choisissez le nom de votre projet et son répertoire, puis cliquez sur Next.
Vérifiez que le Compiler sélectionné est bien GNU GCC Compiler.
Choisissez les cibles Debug et Release (si vous ne savez pas paramétrer ces options, laissez par défaut, cela convient dans la plupart des cas).
Cliquez enfin sur Finish.

Configuration du projetOptions générales du projet

Ce projet vide doit maintenant être configuré.

Allez dans le menu Project -> Properties.

Indiquons à Code::Blocks que le Makefile sera généré indépendamment de MinGW.

Dans l'onglet Project Settings, cochez la case This is a custom Makefile.

Afin de développer plus aisément, nous allons indiquer à Code::Blocks où chercher les fichiers contenant les descriptions des objets de Qt afin qu'il accepte l'auto-compétion (Ceci n'est pas obligatoire mais très recommandé).

Dans l'onglet C/C++ parser options, ajoutez les cibles des différents modules Qt que vous souhaitez utiliser dans votre projet, sans oublier d'utiliser la variable globale de Qt !

Pour une application utilisant QtCore et QtGui, renseignez :

$(#qt4.include) $(#qt4.include)/QtCore $(#qt4.include)/QtGui

La modification de cet onglet nécessite un redémarrage de Code::Blocks.

Indiquons à notre projet d'utiliser le groupe de variables d'environnement qui contient celle de Qt (dans le cas où vous en avez plusieurs).

Dans l'onglet EnvVars options, cochez Select environment variables set to be applied et sélectionnez la variable d'environnement dans laquelle est enregistrée la variable globale de Qt. Par défaut, cela devrait être default.

Cliquez enfin sur OK pour valider les modifications effectuées.

Options des cibles de construction

Et hop, on retourne dans le Menu Project -> Properties.
Non, non je ne vous fait pas tourner en rond, mais courage, on approche de la fin ! :p

Je vais vous détailler les manipulations pour la cible de construction Release, vous devrez donc refaire les manipulations suivantes pour chaque cible de construction supplémentaire de votre projet !
Il vous faudra bien sûr adapter les options de la cible de construction en fonction de celle-ci.

Si vous souhaitez utiliser Qt pour créer une interface graphique, faites la manipulation suivante :

Dans l'onglet Build targets, sélectionnez la cible de construction Release et changez le Type d'application pour GUI Application.

Nous allons maintenant indiquer à Code::Blocks comment créer (build) l'exécutable du projet et comment nettoyer (clean) les répertoires contenant les fichiers temporaires de compilation.

Dans ce même onglet Build targets, vérifiez que la cible de construction Release est toujours sélectionnée et cliquez sur le bouton Build options.
Dans la nouvelle fenêtre qui s'affiche, allez dans l'onglet "Make" Commands.
Changez les valeurs des champs par les suivantes :
- Build project/target : $make -f $makefile.$target
- Compile single file : $make -f $makefile $file
- Clean project/target : $make -f $makefile.$target clean
- Dist-clean project/target : $make -f $makefile.$target distclean

Cliquez sur OK pour valider les paramètres.

Nous allons enfin configurer QtWorkbench pour chaque cible de construction. Adaptez les options en fonction des besoins de votre projet. Pour une application classique utilisant une interface graphique, je vais utiliser les modules Core et Gui de Qt.

Dans l'onglet Qt Workbench, Commencez par cocher l'option This project uses QtWorkbench.

Si vous ne voyez pas toutes les options de cet onglet, aggrandissez la fenêtre vers le bas, et toutes les options devraient alors apparaître !

Cochez les options Release, Qt, Core et Gui.
Vous devrez bien sûr adapter ces options en fonction de votre projet (je pense notamment à cocher Debug lorsque vous configurerez les options de cette cible).
Il reste 3 champs à configurer :
- Pour le champ moc files, indiquez mocs.
- Pour le champ uic files, indiquez uics.
- Pour le champ rcc files, indiquez rccs.

Bien sûr, pour la cible de construction Debug, il vous faudra cocher Debug et Console (Si vous voulez la console) au lieu de Release.

Compilation du projet

Voila vous avez terminé de configurer votre projet, une dernière indication cependant : il vous faudra mettre les dll nécessaires dans le même dossier que celui de l'exécutable compilé (par défaut le sous-dossier bin) car on ne compile plus avec la console Qt (Vous devriez trouver les dll requises dans le dossier bin du répertoire d'installation de Qt (voire de MinGW)).

Vous pouvez maintenant utiliser les boutons de compilation de Qt.
Si vous avez déjà des fichiers source, il sous suffira de les ajouter au projet et de lancer la compilation.
Voici un code source de test pour vérifier que tout s'est déroulé correctement.

Si ça ne compile pas, regardez si votre problème n'est pas déjà présent dans la FAQ, vérifiez que vous avez copié scrupuleusement tous les paramètres indiqués dans ce tutoriel, et sinon postez un message en commentaire !

FAQ

Cette FAQ répertorie les problèmes fréquemment posés dans les commentaires du tutoriel, référez vous à ce chapitre avant de poser votre question, merci.

Lors de l'installation du plugin dans Code::Blocks, ce dernier me demande le fichier qtworkbench.dll.

Pour utiliser le plugin QtWorkBench, vous devez installer la Nighty Build 5382 de Codeblocks, car les dernières version ne sont pas compatibles avec ce dernier.

Le chemin d'installation de Qt n'est pas le même que celui indiqué dans le tuto.

Si vous avez installé la version SDK de Qt, alors le chemin est le suivant : C:\Qt\2009.05\qt (en remplaçant la date par celle de la version de Qt que vous avez installé).

L'onglet QtWorkBench est grisé.

Agrandissez la fenêtre vers le bas, et toutes les options devraient alors apparaître !

mingw32-make.exe: Makefile: No such file or directory
mingw32-make.exe: *** No rule to make target `Makefile'. Stop.

Vérifiez que les différentes options de configuration du premier chapitre de ce tutoriel ont bien été appliquées.

Execution of 'make.exe -f Makefile.Debug' in 'C:\[...]\project' failed.

Execution of 'make.exe -f Makefile.Release' in 'C:\[...]\project' failed.

A l'installation de MinGW, vérifiez que MinGW Make est bien coché.

Dans Settings -> Compiler and Debugger... -> Toolchain executables :

  • Vérifiez que le répertoire de MinGW (Compiler's installation directory) est correct.

  • Si vous avez réinstallé MinGW, vous pouvez cliquer sur Auto-Detect pour que CodeBlocks détecte les changements.


Ceux qui ont consulté cette formation ont également consulté...
En voir plus