Compilation croisée de Qt
Cette page décrit le processus général et les conditions requises pour la compilation croisée de Qt.
Si vous cherchez simplement un moyen de compiler Qt sur l'hôte, consultez la section Création de la version hôte de Qt.
Termes et définitions
La compilation croisée consiste à configurer et à compiler pour une plateforme cible différente de votre plateforme hôte.
L'hôte est l'ordinateur sur lequel vous compilez Qt, par exemple une machine Linux. La cible est l'appareil pour lequel vous compilez Qt, par exemple une tablette Android.
Lors de la compilation de Qt, plusieurs outils sont exécutés pour générer du code ou effectuer d’autres traitements. Ces outils s’exécutent sur l’ hôte et sont donc appelés « outils hôtes ». Ces outils hôtes font partie d’une version hôte de Qt. Cette version hôte doit être préparée au préalable à la compilation de Qt pour la plate-forme cible.
Une version hôte minimale de Qt est une version hôte de Qt qui ne contient que les outils hôtes nécessaires à la création d’une version cible de Qt.
Qt est compilé avec CMake, et CMake a besoin d’un fichier de chaîne d’outils lors de la compilation croisée. Ce fichier contient des informations sur la plateforme cible et la chaîne d’outils utilisée. Consultez la documentation CMake sur la compilation croisée.
Pour certaines plateformes cibles, le script de configuration de Qt sélectionne automatiquement ce fichier. Consultez la documentation spécifique à la plateforme cible souhaitée pour plus de détails.
Pour certaines plateformes cibles, vous devez spécifier un sysroot. Il s’agit d’un environnement autonome comprenant tous les fichiers et bibliothèques nécessaires à la compilation et à la liaison des applications.
Remarques générales sur la compilation de Qt sur l’hôte
Lors de la compilation de Qt pour la cible, des outils tels que moc, rcc, qmlcachegen, qsb et d’autres sont appelés à partir de cet emplacement. Par exemple, si l’on effectue une compilation croisée pour ARM sur une machine x64, une version x64 locale de la même version de Qt doit d’abord être mise à disposition. Le chemin d’accès à cette version de Qt sera transmis à configure ou cmake. La version hôte de Qt est généralement une version standard de Qt pour votre appareil hôte.
La version hôte de Qt doit contenir tous les outils hôtes nécessaires à la compilation de Qt pour la plateforme cible. Par exemple, si votre version cible de Qt est censée prendre en charge Qt Quick, la version hôte de Qt doit contenir qsb, le compilateur de shaders. Un moyen simple de s’assurer que la version hôte de Qt fournit tous les outils nécessaires consiste à compiler sur l’hôte les mêmes modules Qt que ceux dont vous aurez besoin sur la cible.
Évitez de compiler le Qt hôte de manière statique si le Qt cible est compilé en mode partagé. Une version statique de Qt peut ne pas contenir tous les outils nécessaires à la compilation d’un Qt partagé.
Veillez à utiliser la même version de Qt pour le Qt hôte et le Qt cible afin d’éviter tout problème d’incompatibilité.
Création de la version hôte de Qt
Consultez la documentation de l’hôte souhaité pour plus de détails sur la manière de compiler Qt pour cette plateforme.
Pour compiler une version minimale de Qt pour l’hôte, utilisez la commande de compilation suivante après avoir configuré Qt :
mkdir ~/QtHostBuild
cd ~/QtHostBuild
~/QtSource/configure -developer-build -nomake tests
cmake --build . --target host_toolsCette version ne conviendra pas au développement de programmes Qt pour votre plateforme hôte, mais elle contiendra les outils nécessaires à la compilation croisée de Qt.
Spécification de la version hôte de Qt lors de la compilation croisée
Lors de la compilation croisée, vous devez indiquer au Qt cible l'emplacement du Qt hôte.
Lorsque vous utilisez le script `configure`, vous utilisez
~/QtSource/configure -qt-host-path ~/QtHostBuild ...target-specific options...Si vous utilisez directement CMake, vous devez utiliser
cmake -S ~/QtSource -DQT_HOST_PATH=~/QtHostBuild ...target-specific options...Consultez la documentation de la cible souhaitée pour connaître les options spécifiques à celle-ci.
© 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.