Options de configuration de Qt
configure est un outil en ligne de commande qui vous aide à compiler une version personnalisée de Qt à partir des sources. Il fait partie du répertoire principal des sources de Qt.
Depuis Qt 6, `configure` est un wrapper autour de CMake. CMake peut également être invoqué directement. `configure` offre des vérifications d'erreurs supplémentaires et assure la compatibilité avec Qt 5.
Cette page présente certaines des options de `configure`. Pour obtenir la liste complète des options, entrez la commande ` configure -h`.
Remarque : sauf indication contraire, les commandes présentées sur cette page s’appliquent aux plateformes Linux. Sous macOS et Windows, la commande ` PATH ` et la structure des répertoires sont différentes ; les commandes varient donc en conséquence. De plus, sur les systèmes Windows, le script `configure` s’appelle ` configure.bat`.
Déroulement de la configuration
La commande `configure` doit être exécutée dans un environnement de compilation opérationnel où CMake, les compilateurs et les outils de compilation requis sont facilement accessibles. La page « Compilation des sources Qt » répertorie ces dépendances par plateforme.
Une fois cet environnement mis en place, le processus habituel consiste à créer un répertoire de compilation distinct, puis à exécuter d’abord `configure`, à compiler Qt et enfin à l’installer :
~/qt-source/configure
cmake --build . --parallel
cmake --install .Vous souhaiterez peut-être tester différents indicateurs de `configure` et, par conséquent, exécuter `configure` plusieurs fois. Notez que CMake met en cache les options de `configure` et les informations relatives à l'environnement dans un fichier nommé `CMakeCache.txt`. Supprimez ce fichier lorsque vous souhaitez recommencer sans les informations mises en cache.
Répertoires source, de compilation et d’installation
Le répertoire source contient le code source obtenu à partir du paquet source ou du dépôt Git. Le répertoire de compilation est l’emplacement où sont stockés les fichiers liés à la compilation, tels que les fichiers du système de compilation, les fichiers objets et d’autres fichiers intermédiaires. Le répertoire d’installation est l’emplacement où les binaires et les bibliothèques sont installés, pour être utilisés soit par le système, soit par l’application.
Il est recommandé de séparer ces répertoires en effectuant une compilation en arrière-plan et en utilisant l’option -prefix. Cela vous permet de préserver l’arborescence des sources Qt des artefacts de compilation et des binaires, qui sont stockés dans un répertoire distinct. Cette méthode est très pratique si vous souhaitez effectuer plusieurs compilations à partir de la même arborescence de sources, mais pour des configurations différentes. Pour effectuer une compilation « shadow », exécutez la commande `configure` à partir d’un répertoire distinct :
mkdir ~/qt-build
cd ~/qt-build
~/qt-source/configure -prefix /opt/Qt6La configuration avec l’option -prefix signifie que les binaires et bibliothèques Qt sont installés dans un autre répertoire, à savoir /opt/Qt6 dans le cas présent.
Exemples, tests et outils
Par défaut, la commande `configure` ne configure que les bibliothèques et les outils de Qt. Vous pouvez utiliser ` -make examples ` ou ` -make tests ` pour compiler également les exemples ou les tests fournis avec Qt :
~/qt-source/configure -make examples -make testsVous pouvez également configurer Qt de manière à ce que les exemples, les tests et les outils soient configurés, mais non compilés par défaut. Si vous définissez les variables CMake QT_BUILD_EXAMPLES_BY_DEFAULT, QT_BUILD_TESTS_BY_DEFAULT et QT_BUILD_TOOLS_BY_DEFAULT sur OFF, les éléments correspondants ne seront pas compilés par cmake --build .. À la place, CMake générera des cibles individuelles que vous pourrez ensuite compiler séparément.
Ici, nous compilons les bibliothèques et les outils Qt, mais aussi l’exemple NotePad:
~/qt-source/configure -make examples -- -D QT_BUILD_EXAMPLES_BY_DEFAULT=OFF
cmake --build . --parallel
cmake --build . --parallel --target notepadRemarque : l'option « -developer-build » compile les tests par défaut. Voir également la section « Compilations pour développeurs » ci-dessous.
Configurations de compilation
Vous pouvez compiler les bibliothèques et les outils Qt selon différentes variantes, chacune étant optimisée pour un cas d’utilisation spécifique.
Les versions de débogage et de production
-release indique au compilateur d’optimiser le code et de ne pas fournir de symboles de débogage supplémentaires avec Qt et ses outils.
-debug ignore certaines optimisations afin de faciliter le débogage de Qt et de ses outils. Cette option permet également la génération de symboles de débogage qui vous permettent d'inspecter le code et l'état des bibliothèques compilées dans un débogueur.
Enfin, l'option « -debug-and-release » vous permet de compiler en une seule fois une variante de débogage et une variante de production des bibliothèques Qt. Cette option n'est prise en charge que si vous configurez une compilation pour Windows.
D'autres options permettent d'ajuster les configurations :
-force-debug-info: Crée une version finale contenant des informations de débogage.-separate-debug-info: Extrait les informations de débogage dans un fichier séparé.-optimize-size: Optimise les versions « release » en privilégiant la taille plutôt que la vitesse.
Compilations statiques et partagées
Les modules Qt peuvent être compilés sous forme de bibliothèques distinctes auxquelles un exécutable se lie et qu’il charge au démarrage (pour les bibliothèques Qt) ou lors de l’exécution (pour les plugins Qt). On parle alors de compilation partagée; il s’agit de la configuration par défaut sur la plupart des plateformes. L’option de configuration correspondante est -shared.
Vous pouvez également compiler Qt de manière à ce qu’un binaire exécutable inclue tous les modules Qt auxquels il se lie et tous les plugins Qt dont il a besoin. On parle alors de compilation statique; cette option peut être sélectionnée lors de la configuration à l’aide de l’option -static.
Générateurs CMake
Lors de la configuration, vous pouvez sélectionner un générateur CMake. Notez que CMake prend en charge des générateurs qui ne peuvent pas être utilisés avec Qt. Par conséquent, configure sélectionne automatiquement un générateur pour vous.
configure utilise toujours le générateur et l’outil de compilation Ninja si un exécutable ninja est disponible. Ninja est à la fois multiplateforme, riche en fonctionnalités et performant ; il est recommandé sur toutes les plateformes. L’utilisation d’autres générateurs peut fonctionner, mais n’est pas officiellement prise en charge.
Modules et fonctionnalités
Le code source de Qt est organisé en plusieurs répertoires de niveau supérieur appelés sous-modules, par exemple qtbase, qtdeclarative ou qtmultimedia. À l’intérieur de ces sous-modules, vous trouverez le code source des différents modules Qt. Qt Core, Qt Quick, et Qt Multimedia sont des exemples de ces modules Qt.
Remarque : de nombreux sous-modules (répertoires source de niveau supérieur) portent le même nom que les modules Qt qu’ils implémentent, mais ce n’est pas toujours le cas. Par exemple, qtdeclarative contient Qt Quick et Qt Qml, ainsi que divers modules associés. Consultez le fichier README.md dans les répertoires respectifs pour obtenir une vue d’ensemble.
Les sous-modules peuvent être explicitement inclus ou exclus afin de réduire les temps de compilation. De plus, chaque module Qt peut comporter des fonctionnalités qui peuvent également être explicitement activées ou désactivées.
Inclusion et exclusion des sous-modules Qt
L'option ` -skip ` de `configure` permet d'exclure des sous-modules (répertoires source de niveau supérieur) de la compilation Qt. L'exclusion d'un sous-module entraîne l'exclusion de tous les modules Qt qu'il contient. Le sous-module ` qtwayland ` contient à la fois le Qt Wayland Compositor que le plugin Qt Wayland QPA. Spécifier « -skip qtwayland » comme option de `configure` exclura donc ces deux modules Qt.
~/qt-source/configure -skip qtwaylandL'option ` -submodules ` de `configure` peut être utilisée pour configurer une compilation qui ne compile que les sous-modules listés et leurs dépendances. Par exemple, en spécifiant le sous-module ` qtmultimedia `, Qt Multimedia et toutes ses dépendances seront incluses dans la compilation. Plusieurs sous-modules peuvent être séparés par des virgules.
~/qt-source/configure -submodules qtmultimedia,qtactiveqtInclusion ou exclusion de fonctionnalités
Les options « -feature-<fonctionnalité> » et « -no-feature-<fonctionnalité> » permettent respectivement d’inclure et d’exclure des fonctionnalités spécifiques.
Par exemple, vous pouvez utiliser l’option de configuration -no-feature-accessibility pour désactiver la prise en charge de l’accessibilité dans Qt :
~/qt-source/configure -no-feature-accessibilityUtilisez ` configure -list-features ` pour afficher la liste de toutes les fonctionnalités disponibles sur la ligne de commande. Notez que certaines fonctionnalités peuvent dépendre d’autres fonctionnalités ; la désactivation d’une fonctionnalité peut donc avoir des effets secondaires sur d’autres fonctionnalités.
Bibliothèques tierces
Les paquets source de Qt incluent des bibliothèques tierces. Pour déterminer si Qt doit utiliser les versions système de ces bibliothèques ou celles fournies avec le paquet, passez soit ` -system `, soit ` -qt ` avant le nom de la bibliothèque à configurer.
Le tableau ci-dessous récapitule certaines options tierces :
| Nom de la bibliothèque | Inclus dans Qt | Installée sur le système |
|---|---|---|
| zlib | -qt-zlib | -system-zlib |
| libjpeg | -qt-libjpeg | -system-libjpeg |
| libpng | -qt-libpng | -system-libpng |
| freetype | -qt-freetype | -system-freetype |
| PCRE | -qt-pcre | -system-pcre |
| HarfBuzz-NG | -qt-harfbuzz | -system-harfbuzz |
Il est également possible de désactiver la prise en charge de la plupart de ces bibliothèques en utilisant ` -no ` au lieu de ` -qt`.
La commande `configure` de Qt 6 s'appuie sur CMake pour localiser les bibliothèques tierces. Pour ce faire, elle vérifie divers chemins d'accès du système. Si vous avez installé des bibliothèques à un autre emplacement, vous pouvez l'indiquer à CMake en définissant ou en étendant la variable ` CMAKE_PREFIX_PATH `.
Pour obtenir la liste complète des options, consultez l'aide relative à configure -help.
SSL
Qt Network peut être configuré pour prendre en charge la communication via le protocole SSL (Secure Sockets Layer), mais n’implémente pas lui-même les algorithmes proprement dits. Il doit plutôt s’appuyer sur d’autres bibliothèques.
Sous Windows, Qt peut utiliser la bibliothèque Secure Channel du système à cette fin (option de configuration ` -schannel`). Sous macOS et iOS, Qt peut être configuré pour utiliser l’API SecureTransport (option de configuration ` -securetransport`).
La prise en charge la plus complète, qui fonctionne également sur presque toutes les plateformes cibles, est fournie par la boîte à outils OpenSSL (option -openssl). Qt nécessite OpenSSL 1.1.1 ou une version ultérieure.
Qt peut être configuré pour utiliser OpenSSL de trois manières :
- Qt Network chargement des bibliothèques OpenSSL (DLL) lors de la première demande, au moment de l'exécution. Si elles sont introuvables, l'application continue de s'exécuter mais ne parvient pas à gérer les communications SSL. Cette option est activée à l'aide de l'option de configuration
-openssl-runtime. - Qt Network liage avec les bibliothèques OpenSSL. Si celles-ci sont introuvables au moment du chargement, l’application ne démarre pas. Cette option est activée à l’aide de l’option de configuration
-openssl-linked. - Qt Network Compilation avec une version statique des bibliothèques OpenSSL, OpenSSL faisant alors partie intégrante de la bibliothèque « Qt Network ». Cette option est activée à l’aide de l’option de configuration «
openssl-linked» et en définissant la variable «OPENSSL_USE_STATIC_LIBS» sur «ON».
Définissez la variable CMake ` OPENSSL_ROOT_DIR ` si OpenSSL n’est pas installé à un emplacement standard et n’est donc pas détecté par `configure`.
Consultez la section Classes Secure Sockets Layer (SSL) pour plus d’instructions sur Qt avec prise en charge SSL.
Options de compilation croisée
Pour configurer Qt en vue d’un développement et d’un déploiement multiplateforme, vous devez d’abord disposer d’une version de Qt compatible avec la machine hôte. De plus, la chaîne d’outils de développement pour la plateforme cible doit être configurée. Cette configuration varie selon les plateformes prises en charge.
Les options courantes sont les suivantes :
-external-hostbindir- Chemin d’accès aux outils Qt compilés pour cette machine.-device- Sélectionnez devices/mkspec pour les fichiers d'accompagnement de qmake.-device-option- Définit des variables qmake supplémentaires.
Remarque : les chaînes d'outils destinées à des cibles autres que les ordinateurs de bureau sont souvent fournies avec ce qu'on appelle un « sysroot », sur lequel Qt doit être configuré.
Compilations pour développeurs
L'option de configuration « -developer-build » est une option pratique qui optimise la compilation pour le développement de Qt lui-même. Elle ne doit pas être utilisée pour compiler des variantes de Qt destinées aux clients.
Les bibliothèques d’une version de développement contiennent davantage de symboles exportés qu’une version standard, et tout le code Qt est compilé avec un niveau d’avertissement plus élevé. Cette option modifie également le préfixe par défaut du répertoire de compilation, ce qui évite d’avoir à installer Qt avant de tester quoi que ce soit, et active enfin la compilation des autotests de Qt par défaut.
Reconfiguration des builds existants
Le système de compilation Qt offre une prise en charge de base pour reconfigurer des compilations Qt existantes avec un ensemble différent d’options de configuration, mais celle-ci n’est pas très robuste en raison du fonctionnement interne de CMake.
La méthode la plus sûre pour reconfigurer une compilation existante consiste à passer l’option ` -redo ` à `configure`. Cela supprimera le fichier `CMakeCache.txt` de la compilation, garantissant ainsi un état relativement sûr pour la reconfiguration. Les indicateurs initiaux de `configure` s’appliqueront toujours à la compilation reconfigurée.
Installation du résumé et des options de `configure`
Depuis Qt 6.9, les fichiers de résumé de configuration, ainsi que les options transmises à ` configure`, peuvent être automatiquement inclus dans le cadre de l’installation.
Cette fonctionnalité est activée en définissant la variable CMake ` QT_INSTALL_CONFIG_INFO_FILES ` sur ` ON` :
~/qt-source/configure -prefix /opt/Qt6 -- -D QT_INSTALL_CONFIG_INFO_FILES=ONLors de l’installation, les fichiers texte contenant le résumé de la configuration et les options (pour chaque partie du dépôt de la compilation) sont copiés dans le répertoire ` architecture-independent Qt data directory`.
Par exemple,
/opt/Qt6/config_qtbase.opt
/opt/Qt6/config_qtbase.summary
/opt/Qt6/config_qtdeclarative.opt
/opt/Qt6/config_qtdeclarative.summary
...Options spécifiques aux plateformes
Les pages suivantes fournissent des instructions sur la manière de configurer Qt pour le développement sur des plateformes spécifiques :
- Compilation de Qt pour QNX
- Compilation de Qt pour VxWorks
- Configurer un appareil Linux embarqué
- Qt pour Android - Compilation à partir du code source
- Qt pour HarmonyOS - Compilation à partir du code source
- Qt pour Linux - Compilation à partir du code source
- Qt pour Windows - Compilation à partir du code source
- Qt pour macOS - Compilation à partir du code source
- Qt pour INTEGRITY - Tutoriel sur le projet Monolith
- Qt pour iOS - Compilation à partir du code source
- Qt pour WebAssembly - Compilation à partir du code source
© 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.