Changements dans le système de construction de Qt 6
Une grande partie du travail effectué dans Qt 6 est liée à la façon dont Qt et ses modules sont construits. L'objectif était de faire en sorte que Qt soit à l'épreuve du temps en passant à un outil de construction populaire et largement adopté : CMake.
Construire Qt à partir des sources
Le système de construction de Qt 5 était basé sur qmake. Dans Qt 6, nous avons porté le système de construction vers CMake.
Note : Ceci n'affecte que les utilisateurs qui veulent construire Qt à partir des sources. Vous pouvez toujours utiliser qmake comme outil de construction pour vos applications.
Il est possible de configurer Qt directement à partir de la ligne de commande en invoquant cmake. Cependant, nous continuons à recommander l'outil de ligne de commande configure, qui offre une interface plus agréable et un contrôle d'erreur supplémentaire.
Voir aussi Qt Configure Options pour une vue d'ensemble de la nouvelle API configure.
CMake, Ninja comme dépendances externes
Vous avez besoin d'une version récente de CMake pour configurer et construire Qt. Pour Qt 6.0, nous avons besoin de CMake 3.16. À partir de Qt 6.2, nous avons besoin de CMake 3.21 pour construire Qt en tant que bibliothèques statiques. À partir de Qt 6.6, nous avons besoin de CMake 3.21.1 pour construire Qt pour les plateformes Apple. À partir de Qt 6.9, nous avons besoin de CMake 3.22. Vous devez également disposer d'une version à jour de l'outil Ninja.
CMake et Ninja sont des outils open source qui peuvent être installés de différentes manières. Ils sont également disponibles sur Qt Online Installer.
Voir Construire les sources de Qt pour un aperçu plus détaillé des exigences de construction sur différentes plates-formes.
Sélection d'une licence Qt
Dans Qt 5, configure vous demandait de choisir si vous aviez l'intention d'utiliser Qt sous des licences commerciales ou open-source. Si vous aviez plusieurs licences commerciales, vous deviez également sélectionner la licence que vous souhaitiez utiliser.
Nous avons supprimé ces deux sélections dans Qt 6. Le choix des licences disponibles dépend des contrats légaux que vous avez avec The Qt Company, et non des artefacts.
Les options configure -opensource, -commercial, et -confirm-license sont ignorées dans Qt 6, et pourraient être supprimées dans les versions futures de Qt.
Ré-exécution de configure
Vous souhaitez parfois réexécuter configure pour tester différentes options de configuration. Dans Qt 5, configure mettait en cache diverses informations de l'environnement entre les exécutions, mais démarrait autrement à partir d'un état propre : Vous deviez utiliser -redo, ou utiliser le script shell config.status, pour réutiliser les arguments d'une exécution précédente. Vous pouviez également utiliser les options -recheck, -recheck-all pour forcer une réévaluation des tests mis en cache.
CMake et donc configure dans Qt 6 met en cache les résultats de manière encore plus agressive. Les paramètres d'environnement détectés, mais aussi les sélections effectuées par d'autres arguments de ligne de commande, sont stockés dans un fichier appelé CMakeCache.txt. Si vous exécutez configure avec de nouvelles options, celles-ci sont fusionnées dans ce fichier. Supprimez ce fichier pour repartir de zéro. Les options de configuration ci-dessus ne sont plus supportées.
Construire seulement des parties de Qt
Le système de construction de Qt 5 vous permettait d'exécuter l'outil de construction (par exemple make) dans un sous-répertoire pour effectuer une reconstruction partielle.
CMake suit un paradigme différent et vous demande de construire des cibles à partir du répertoire de premier niveau, en prenant en compte l'ensemble de la construction. Utilisez ninja -t targets pour voir toutes les cibles disponibles dans la compilation.
Résolution des bibliothèques tierces
Une des tâches de configure est de détecter la disponibilité de différents paquets tiers dans l'environnement. Dans Qt Test 5, configure utilisait optionnellement pkg-config pour cela, mais utilisait également divers tests à la compilation. Ces vérifications pouvaient être modifiées depuis la ligne de commande avec diverses affectations comme ICU_PREFIX, ICU_LIBS, etc.
Dans Qt 6, configure s'appuie sur CMake pour résoudre les dépendances. Pour la plupart des dépendances, cela nécessite que la bibliothèque tierce fournisse un paquetage CMake dans le chemin de recherche CMake. Vous pouvez utiliser la variable CMAKE_PREFIX_PATH pour étendre ce chemin avec des emplacements personnalisés.
Certaines dépendances, comme OpenSSL, sont également détectées par la logique de CMake : si OpenSSL n'est pas détecté, vous devrez peut-être définir la variable CMake OPENSSL_ROOT_DIR pour qu'elle pointe vers le répertoire d'installation.
Sélection de la chaîne d'outils
Dans Qt 5, configure utilisait ce qu'on appelle des mkspecs pour spécifier à la fois la plateforme de construction et la plateforme cible(options-platform, -xplatform, et -device ). CMake ne les utilise pas, mais s'appuie sur des vérifications d'environnement et des fichiers de chaîne d'outils (voir aussi la documentation CMake-toolchains). Les options -platform, -xplatform sont toujours disponibles, mais elles ne sont utilisées que pour définir les valeurs par défaut de l'outil qmake généré.
Compilation croisée de Qt
La compilation croisée est l'acte de compiler du code pour un système informatique (la cible) sur un système différent (l'hôte). Un environnement de compilation pour les applications Qt nécessite que les outils Qt soient disponibles sur l'hôte (pensez à moc, rcc), ainsi que les bibliothèques Qt qui doivent être construites pour la cible.
Dans Qt 5, configure vous permettait de construire les outils de l'hôte ainsi que les outils et bibliothèques de la cible en une seule étape. Dans Qt 6, cela n'est plus possible. Au lieu de cela, vous devez avoir Qt installé et en cours d'exécution sur l'hôte avant de pouvoir effectuer une compilation croisée de Qt sur la cible. La version installée de Qt doit en outre être la même que celle qui doit faire l'objet d'une compilation croisée.
Pour plus de détails sur la compilation croisée, voir Configurer un dispositif Linux embarqué, Qt pour Android - Construire à partir des sources, et Qt pour iOS - Construire à partir des sources.
Portage des plugins Qt et des bibliothèques supplémentaires
Bien que qmake soit toujours supporté pour construire des applications Qt, il ne peut plus être utilisé pour compiler des plugins Qt personnalisés, ou des bibliothèques qui reposent sur des éléments internes du système de construction de Qt 5. Ces bibliothèques ou plugins doivent être portés sur CMake pour être utilisés avec Qt 6.
Au moment de la sortie de Qt 6.0, l'API pour la construction de plugins ou de bibliothèques Qt personnalisés est encore en tech preview, ce qui signifie qu'elle peut encore changer dans les versions futures. Une API publique stable sera disponible dans une version ultérieure de Qt 6.
Sujets connexes
- Changements apportés aux modules Qt dans Qt 6 - Liste des changements apportés à l'API des modules Qt
- Changements dans les modules pris en charge - Statut des modules Qt 5 dans Qt 6.0
- Compatibilité Qt 5 et Qt 6 - Création d'applications avec Qt 5 et Qt 6
© 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.