Premiers pas avec qmake
Ce tutoriel vous présente les bases de qmake. Les autres rubriques de ce manuel contiennent des informations plus détaillées sur l'utilisation de qmake.
Commencer par un exemple simple
Supposons que vous veniez de terminer une implémentation de base de votre application et que vous ayez créé les fichiers suivants :
- hello.cpp
- hello.h
- main.cpp
Vous trouverez ces fichiers dans le répertoire examples/qmake/tutorial de la distribution Qt. La seule autre chose que vous savez concernant la configuration de l'application, c'est qu'elle est écrite en Qt. Tout d'abord, à l'aide de votre éditeur de texte brut préféré, créez un fichier nommé hello.pro dans examples/qmake/tutorial. La première chose à faire est d'ajouter les lignes qui indiquent à qmake quels sont les fichiers source et d'en-tête faisant partie de votre projet de développement.
Nous allons d’abord ajouter les fichiers source au fichier de projet. Pour cela, vous devez utiliser la variable SOURCES. Commencez simplement une nouvelle ligne par SOURCES += et ajoutez hello.cpp après. Vous devriez obtenir quelque chose comme ceci :
SOURCES += hello.cppNous répétons cette opération pour chaque fichier source du projet, jusqu’à obtenir le résultat suivant :
SOURCES += hello.cpp
SOURCES += main.cppSi vous préférez utiliser une syntaxe de type Make, avec tous les fichiers listés en une seule fois, vous pouvez utiliser l’échappement de nouvelle ligne comme suit :
SOURCES = hello.cpp \
main.cppMaintenant que les fichiers source sont répertoriés dans le fichier de projet, il faut ajouter les fichiers d’en-tête. Ceux-ci s’ajoutent exactement de la même manière que les fichiers source, à l’exception du nom de variable utilisé, qui est HEADERS.
Une fois cette opération effectuée, votre fichier de projet devrait ressembler à ceci :
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cppLe nom de la cible est défini automatiquement. Il correspond au nom du fichier de projet, mais avec le suffixe approprié à la plate-forme. Par exemple, si le fichier de projet s’appelle ` hello.pro`, la cible sera ` hello.exe ` sous Windows et ` hello ` sous Unix. Si vous souhaitez utiliser un nom différent, vous pouvez le définir dans le fichier de projet :
TARGET = helloworldLe fichier de projet final devrait ressembler à ceci :
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cppVous pouvez désormais utiliser qmake pour générer un Makefile pour votre application. Dans la ligne de commande, depuis le répertoire de votre projet, tapez la commande suivante :
qmake -o Makefile hello.proRemarque : si vous avez installé Qt via un gestionnaire de paquets, le binaire peut être qmake6.
Tapez ensuite make ou nmake selon le compilateur que vous utilisez.
Pour les utilisateurs de Visual Studio, qmake peut également générer des fichiers de projet Visual Studio. Par exemple :
qmake -tp vc hello.proRendre une application débuggable
La version finale d’une application ne contient aucun symbole de débogage ni aucune autre information de débogage. Pendant le développement, il est utile de créer une version de débogage de l’application contenant les informations pertinentes. Pour ce faire, il suffit d’ajouter debug à la variable CONFIG dans le fichier de projet.
Par exemple :
CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cppUtilisez qmake comme précédemment pour générer un Makefile. Vous obtiendrez désormais des informations utiles sur votre application lorsque vous l'exécuterez dans un environnement de débogage.
Ajout de fichiers source spécifiques à la plate-forme
Après quelques heures de programmation, vous avez peut-être commencé à travailler sur la partie spécifique à la plate-forme de votre application et décidé de séparer le code dépendant de la plate-forme. Vous disposez donc désormais de deux nouveaux fichiers à inclure dans votre fichier de projet : hellowin.cpp et hellounix.cpp. Nous ne pouvons pas simplement les ajouter à la variable SOURCES, car cela placerait les deux fichiers dans le Makefile. Nous devons donc utiliser une portée qui sera traitée en fonction de la plateforme pour laquelle nous effectuons la compilation.
Voici un exemple de portée simple qui ajoute le fichier spécifique à la plateforme Windows :
win32 {
SOURCES += hellowin.cpp
}Lors de la compilation pour Windows, qmake ajoute hellowin.cpp à la liste des fichiers source. Lors de la compilation pour toute autre plateforme, qmake l’ignore tout simplement. Il ne reste plus qu’à créer une portée pour le fichier spécifique à Unix.
Une fois cette opération effectuée, votre fichier de projet devrait ressembler à ceci :
CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
SOURCES += hellowin.cpp
}
unix {
SOURCES += hellounix.cpp
}Utilisez qmake comme précédemment pour générer un Makefile.
Arrêter qmake si un fichier n’existe pas
Vous ne souhaitez peut-être pas créer de Makefile si un certain fichier n'existe pas. On peut vérifier si un fichier existe à l’aide de la fonction `exists() `. On peut empêcher qmake de poursuivre le traitement à l’aide de la fonction `error()`. Cela fonctionne de la même manière que les portées. Il suffit de remplacer la condition de la portée par la fonction. Une vérification de l’existence d’un fichier nommé `main.cpp` se présente ainsi :
!exists( main.cpp ) {
error( "No main.cpp file found" )
}Le symbole « ! » est utilisé pour inverser le test. Autrement dit, « exists( main.cpp ) » est vrai si le fichier existe, et « !exists( main.cpp ) » est vrai si le fichier n’existe pas.
CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
SOURCES += hellowin.cpp
}
unix {
SOURCES += hellounix.cpp
}
!exists( main.cpp ) {
error( "No main.cpp file found" )
}Utilisez qmake comme précédemment pour générer un fichier makefile. Si vous renommez temporairement main.cpp, le message s’affichera et qmake interrompra le traitement.
Vérification de plusieurs conditions
Supposons que vous utilisiez Windows et que vous souhaitiez pouvoir voir la sortie de l’instruction avec qDebug() lorsque vous exécutez votre application en ligne de commande. Pour voir cette sortie, vous devez compiler votre application avec le paramètre de console approprié. Nous pouvons facilement ajouter console à la ligne CONFIG pour inclure ce paramètre dans le Makefile sous Windows. Cependant, supposons que nous souhaitions n’ajouter la ligne CONFIG que lorsque nous exécutons l’application sous Windows et que debug figure déjà dans la ligne CONFIG. Cela nécessite l’utilisation de deux portées imbriquées. Créez d’abord une portée, puis créez l’autre à l’intérieur de celle-ci. Placez les paramètres à traiter à l’intérieur de la deuxième portée, comme ceci :
win32 {
debug {
CONFIG += console
}
}Les portées imbriquées peuvent être reliées entre elles à l’aide de deux-points ; le fichier de projet final se présente donc comme suit :
CONFIG += debug
HEADERS += hello.h
SOURCES += hello.cpp
SOURCES += main.cpp
win32 {
SOURCES += hellowin.cpp
}
unix {
SOURCES += hellounix.cpp
}
!exists( main.cpp ) {
error( "No main.cpp file found" )
}
win32:debug {
CONFIG += console
}Et voilà ! Vous avez maintenant terminé le tutoriel sur qmake et êtes prêt à rédiger des fichiers de projet pour vos projets de développement.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.