Wiki de QtFR.org

Des tutos, des articles et des trucs et astuces

Outils pour utilisateurs

Outils du site


configuration_du_terminal_qt_5_sous_windows

Configurer le terminal Qt 5 sur Windows.

Qu'est-ce le terminal Qt :

C'est un terminal Windows (comme cmd qui se trouve dans C:\Windows\System32\cmd.exe par exemple sur Windows7) préconfiguré avec les bonnes variables d'environnements pour pouvoir compiler avec la bonne version de Qt et de compilateur.
Il y a un terminal Qt par couple version de Qt et compilateur.
Au final, les commandes qmake et make seront utilisables et associées à ce couple version de Qt et compilateur.

Ainsi, il sera possible d'utiliser le traditionnel :

qmake
make
make install

pour compiler et installer directement une librairie par exemple.

Problème :

Avec Qt4, make est bien reconnu dans son terminal Qt (Du moins la version MinGW, je n'ai pas vérifier avec MSVC). Mais avec Qt5 et pour une raison que j'ignore, make n'est plus reconnu dans son terminal Qt. (ni même nmake ou jom pour MSVC)

La mécanique interne du terminal Qt :

C'est un simple raccourci vers un terminal Windows (cmd) qui appel un script de configuration propre au couple version de Qt et compilateur. Par exemple, voici le contenu d'un raccourci pour le couple Qt5.4 et MinGW :

C:\Windows\System32\cmd.exe /A /Q /K C:\Qt\5.4\mingw491_32\bin\qtenv2.bat

C'est ce fichier (qtenv2.bat) qu'il faudra modifier.

Solution pour MinGW :

Ouvrer le terminal Qt. Si vous entrez make dans le le terminal Qt, il vous dira que la commande n'est pas reconnue. Si vous entrez mingw32-make dans le terminal Qt, il vous dira que la commande est reconnue mais qu'elle attend un fichier makefile. Pour MinGW, la commande make n'est pas reconnu mais mingw32-make l'est. On peut donc très bien se contenter de faire :

qmake
mingw32-make
mingw32-make install

Mais c'est trop long à taper pour moi. Alors il suffit d'éditer le fichier qtenv2.bat situé dans Qt\version_de_Qt\compilateur_utilisé\bin\qtenv2.bat (C:\Qt\5.4\mingw491_32\bin\qtenv2.bat par exemple dans mon cas) et d'ajouter un alias :

doskey make=mingw32-make

Et profités en pour ajouter le chemin de QTDIR :

set QTDIR=C:\Qt\5.4\mingw491_32

dans mon cas. Fermer et ré-ouvrer le terminal Qt. Vérifier que si vous entrez make dans le le terminal Qt, il vous dira que la commande est reconnue mais qu'elle attend un fichier makefile.

Solution pour MSVC :

Pour MSVC, c'est un peu plus compliqué. Il y a 2 commandes : nmake et jom. jom est une commande plus évoluée qui se base sur nmake mais qui exploite au mieux les processeurs multicœurs.

Ouvrer le terminal Qt. Si vous entrez nmake dans le le terminal Qt, il vous dira que la commande n'est pas reconnue. Pour qu'il soit reconnu, il faut éditer le fichier qtenv2.bat situé dans Qt\version_de_Qt\compilateur_utilisé\bin\qtenv2.bat ( C:\Qt\5.4\msvc2013\bin\qtenv2.bat par exemple dans mon cas) et d'ajouter :

C:\"Program Files (x86)"\"Microsoft Visual Studio 13.0"\VC\vcvarsall.bat

qui est le script vcvarsall.bat du compilateur MSVC (chemin à modifier en fonction de votre compilateur). Fermer et ré-ouvrer le terminal Qt. Vérifier que si vous entrez nmake dans le terminal Qt, il vous dira que la commande est reconnue mais qu'elle attend un makefile.

Si vous entrez jom dans le le terminal Qt, il vous dira que la commande n'est pas reconnue. jom.exe se trouve dans les dossier de QtCreator : C:\Qt\Tools\QtCreator\bin\jom.exe dans mon cas. D'ailleurs si vous entrez C:\Qt\Tools\QtCreator\bin\jom.exe dans le terminal Qt, il vous dira que la commande est reconnue mais qu'elle attend un makefile.

Mais c'est trop long à taper pour moi. Donc il suffit d'éditer une nouvelle fois le fichier qtenv2.bat situé dans QTDIR\version_de_Qt\compilateur_utilisé\bin\qtenv2.bat (C:\Qt\5.4\msvc2013\bin\qtenv2.bat par exemple dans mon cas) et d'ajouter un alias au début du fichier :

doskey make=C:\Qt\Tools\QtCreator\bin\jom.exe

Et profités en pour ajouter le chemin de QTDIR :

set QTDIR=C:\Qt\5.4\msvc2013

dans mon cas. Fermer et ré-ouvrer le terminal Qt. Vérifier que si vous entrez make dans le terminal Qt, il vous dira que la commande est reconnue mais qu'elle attend un fichier makefile.

Conclusion :

Tout ceci est une manipulation qui n'aurait pas été nécessaire si le script qtenv2.bat de Qt5 était aussi complet que celui de Qt4 (jeter un oeil sur C:\Qt\4.8.7\bin\qtvars.bat par exemple).

configuration_du_terminal_qt_5_sous_windows.txt · Dernière modification: 2015/08/24 23:37 par loupium