Plate-forme Remarques
De nombreux projets multiplateformes peuvent être gérés par les fonctions de configuration de base de qmake. Cependant, sur certaines plateformes, il est parfois utile, voire nécessaire, de tirer parti de fonctionnalités spécifiques à la plateforme. qmake connaît un grand nombre de ces fonctionnalités, qui sont accessibles via des variables spécifiques qui ne prennent effet que sur les plateformes où elles sont pertinentes.
macOS, iOS, tvOS et watchOS
Les fonctionnalités spécifiques à ces plateformes incluent la prise en charge de la création de binaires universels, de frameworks et de bundles.
Paquets source et binaires
La version de qmake fournie dans les paquets source est configurée légèrement différemment de celle fournie dans les paquets binaires, car elle utilise une spécification de fonctionnalité différente. Alors que le paquet source utilise généralement la spécification macx-g++, le paquet binaire est généralement configuré pour utiliser la spécification macx-xcode.
Les utilisateurs de chaque paquet peuvent modifier cette configuration en invoquant qmake avec l'option -spec (voir Exécuter qmake pour plus d'informations). Par exemple, pour utiliser qmake à partir d'un paquetage binaire afin de créer un Makefile dans un répertoire de projet, invoquez la commande suivante :
qmake -spec macx-g++
Utilisation de frameworks
qmake est capable de générer automatiquement des règles de compilation pour lier des frameworks dans le répertoire standard des frameworks sur macOS, situé à l'adresse /Library/Frameworks/.
Les répertoires autres que le répertoire standard du framework doivent être spécifiés au système de compilation, ce qui est réalisé en ajoutant des options d'édition de liens à la variable LIBS, comme le montre l'exemple suivant :
LIBS += -F/path/to/framework/directory/
Le framework lui-même est lié en ajoutant les options -framework et le nom du framework à la variable LIBS:
LIBS += -framework TheFramework
Création de frameworks
Tout projet de bibliothèque donné peut être configuré de manière à ce que le fichier de bibliothèque résultant soit placé dans un framework, prêt à être déployé. Pour ce faire, configurez le projet pour qu'il utilise le modèlelib et ajoutez l'option lib_bundle à la variable CONFIG:
TEMPLATE = lib CONFIG += lib_bundle
Les données associées à la bibliothèque sont spécifiées à l'aide de la variable QMAKE_BUNDLE_DATA. Celle-ci contient les éléments qui seront installés avec un paquet de bibliothèques et est souvent utilisée pour spécifier une collection de fichiers d'en-tête, comme dans l'exemple suivant :
FRAMEWORK_HEADERS.version = Versions FRAMEWORK_HEADERS.files = path/to/header_one.h path/to/header_two.h FRAMEWORK_HEADERS.path = Headers QMAKE_BUNDLE_DATA += FRAMEWORK_HEADERS
Vous utilisez la variable FRAMEWORK_HEADERS pour spécifier les en-têtes requis par un framework particulier. En l'ajoutant à la variable QMAKE_BUNDLE_DATA, vous vous assurez que les informations relatives à ces en-têtes sont ajoutées à la collection de ressources qui sera installée avec l'ensemble de bibliothèques. Le nom et la version du framework sont également spécifiés par les variables QMAKE_FRAMEWORK_BUNDLE_NAME et QMAKE_FRAMEWORK_VERSION. Par défaut, les valeurs utilisées pour ces variables sont obtenues à partir des variables TARGET et VERSION.
Voir Qt pour macOS - Déploiement pour plus d'informations sur le déploiement des applications et des bibliothèques.
Création et déplacement de projets Xcode
Sur macOS, les développeurs peuvent générer des fichiers de projet Xcode à partir d'un fichier de projet qmake existant. Par exemple, vous pouvez créer un projet Xcode à partir d'un fichier de projet qmake existant :
qmake -spec macx-xcode project.pro
Remarque : si un projet est ultérieurement déplacé sur le disque, qmake doit être exécuté à nouveau pour traiter le fichier de projet et créer un nouveau fichier de projet Xcode.
Prise en charge simultanée de deux cibles de compilation
Il n'est pas possible d'implémenter ceci actuellement, parce que le concept Xcode de Configurations Actives de Construction est conceptuellement différent de l'idée qmake de cibles de construction.
Les paramètres de Xcode Active Build Configurations permettent de modifier les configurations de Xcode, les drapeaux du compilateur et d'autres options de construction similaires. Contrairement à Visual Studio, Xcode ne permet pas de sélectionner des fichiers de bibliothèque spécifiques selon que les configurations de construction debug ou release sont sélectionnées. Les paramètres de qmake debug et release contrôlent quels fichiers de bibliothèque sont liés à l'exécutable.
Il n'est actuellement pas possible de définir des fichiers dans les paramètres de configuration de Xcode à partir du fichier de projet Xcode généré par qmake. La façon dont les bibliothèques sont liées dans la phase Frameworks & Libraries dans le système de construction de Xcode.
De plus, la configuration active de construction sélectionnée est stockée dans un fichier .pbxuser, qui est généré par Xcode lors du premier chargement, et non pas créé par qmake.
Fenêtres
Les fonctionnalités spécifiques à cette plateforme comprennent la prise en charge des fichiers de ressources Windows (fournis ou générés automatiquement), la création de fichiers de projet Visual Studio et la gestion des fichiers manifestes lors du déploiement d'applications Qt développées à l'aide de Visual Studio 2005 ou d'une version ultérieure.
Ajout de fichiers de ressources Windows
Cette section décrit comment manipuler un fichier de ressources Windows avec qmake pour le lier à un exécutable d'application (EXE) ou à une bibliothèque de liens dynamiques (DLL). qmake peut optionnellement générer automatiquement un fichier de ressources Windows correctement rempli.
Un fichier de ressources Windows lié peut contenir de nombreux éléments accessibles par son EXE ou sa DLL. Cependant, le système de ressources Qt devrait être utilisé pour accéder aux ressources liées d'une manière indépendante de la plate-forme. Cependant, certains éléments standard du fichier de ressources Windows lié sont accessibles par Windows lui-même. Par exemple, dans l'explorateur Windows, l'onglet "version" des propriétés du fichier est rempli par des éléments de ressources. En outre, l'icône du programme de l'EXE est lue à partir de ces éléments. C'est donc une bonne pratique pour un EXE ou une DLL Windows créé par Qt d'utiliser les deux techniques en même temps : lier des ressources indépendantes de la plate-forme via le système de ressources Qt et ajouter des ressources spécifiques à Windows via un fichier de ressources Windows.
Généralement, un script de définition des ressources (fichier .rc) est compilé dans un fichier de ressources Windows. Dans la chaîne d'outils Microsoft, l'outil RC génère un fichier .res, qui peut être lié avec l'éditeur de liens Microsoft à un EXE ou à une DLL. La chaîne d'outils MinGW utilise l'outil windres pour générer un fichier .o qui peut être lié avec l'éditeur de liens MinGW à un EXE ou une DLL.
La génération automatique facultative d'un fichier .rc correctement rempli par qmake est déclenchée par la définition d'au moins une des variables système VERSION et RC_ICONS. Le fichier .rc généré est automatiquement compilé et lié. Les éléments ajoutés au fichier .rc sont définis par les variables système QMAKE_TARGET_COMPANY, QMAKE_TARGET_DESCRIPTION, QMAKE_TARGET_COPYRIGHT, QMAKE_TARGET_PRODUCT, QMAKE_TARGET_ORIGINAL_FILENAME, QMAKE_TARGET_INTERNALNAME, QMAKE_TARGET_COMMENTS, QMAKE_TARGET_TRADEMARKS, QMAKE_MANIFEST, RC_CODEPAGE, RC_ICONS, RC_LANG et VERSION.
Si ces éléments ne suffisent pas, qmake dispose de deux variables système RC_FILE et RES_FILE qui pointent directement vers un fichier .rc ou .res créé à l'extérieur. En définissant l'une de ces variables, le fichier spécifié est lié à l'EXE ou à la DLL.
Remarque : la génération du fichier .rc par qmake est bloquée si RC_FILE ou RES_FILE est défini. Dans ce cas, aucune autre modification n'est apportée au fichier .rc donné ou au fichier .res ou .o par qmake ; les variables relatives à la génération du fichier .rc n'ont aucun effet.
Création de fichiers de projet Visual Studio
Cette section décrit comment importer un projet qmake existant dans Visual Studio. qmake est capable de prendre un fichier de projet et de créer un projet Visual Studio qui contient toutes les informations nécessaires requises par l'environnement de développement. Pour ce faire, le modèle de projet qmake est défini sur vcapp (pour les projets d'application) ou vclib (pour les projets de bibliothèque).
Cette valeur peut également être définie à l'aide d'une option de ligne de commande, par exemple :
qmake -tp vc
Il est possible de générer récursivement des fichiers .vcproj dans les sous-répertoires et un fichier .sln dans le répertoire principal, en tapant :
qmake -tp vc -r
Chaque fois que vous mettez à jour le fichier de projet, vous devez exécuter qmake pour générer un projet Visual Studio mis à jour.
Remarque : si vous utilisez le complément Visual Studio, sélectionnez Qt > Importer à partir d'un fichier .pro pour importer les fichiers .pro.
Fichiers Manifest de Visual Studio
Lorsque vous déployez des applications Qt créées à l'aide de Visual Studio 2005 ou d'une version ultérieure, assurez-vous que le fichier manifeste créé lors de la création du lien avec l'application est traité correctement. Ce traitement est automatique pour les projets qui génèrent des DLL.
La suppression de l'intégration du manifeste pour les exécutables d'application peut être effectuée par l'affectation suivante à la variable CONFIG:
CONFIG -= embed_manifest_exe
De même, l'intégration du manifeste pour les DLL peut être supprimée par l'affectation suivante à la variable CONFIG:
CONFIG -= embed_manifest_dll
Ce point est abordé plus en détail dans le guide de déploiement pour Windows.
© 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.