Sur cette page

Compilation croisée de Qt

Cette page décrit le processus général et les exigences de la compilation croisée de Qt.

Si vous cherchez simplement un moyen de construire une version hôte de Qt, voir Créer une version hôte de Qt.

Termes et définitions

Lacompilation croisée consiste à configurer et à construire pour une plateforme cible différente de la plateforme hôte.

L'hôte est l'ordinateur sur lequel vous construisez Qt, par exemple une machine Linux. La cible est l'appareil pour lequel vous construisez Qt, par exemple une tablette Android.

Lors de la construction 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 compilation hôte de Qt. Cette compilation hôte doit être préparée comme une condition préalable à la construction de Qt pour la plate-forme cible.

Une compilation hôte minimale de Qt est une compilation hôte de Qt qui ne contient que les outils hôtes nécessaires à la création d'une compilation cible de Qt.

Qt est construit 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 plate-forme cible et la chaîne d'outils utilisée. Voir la documentation de CMake sur la compilation croisée.

Pour certaines plateformes cibles, le script de configuration de Qt sélectionne automatiquement le fichier. Voir la documentation spécifique à la plate-forme 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 qui comprend tous les fichiers et bibliothèques nécessaires à la compilation et à l'édition de liens des applications.

Remarques générales sur la compilation de Qt par l'hôte

Lors de la compilation de Qt XML pour la cible, des outils tels que moc, rcc, qmlcachegen, qsb, et d'autres, sont invoqués à partir de là. Par exemple, si l'on effectue une compilation croisée pour ARM sur une machine x64, une version locale x64 de la même version de Qt doit d'abord être mise à disposition. Le chemin vers cette version de Qt sera transmis à configure ou cmake. La version hôte de Qt est généralement une version normale de Qt pour votre périphérique hôte.

La version hôte de Qt doit contenir tous les outils hôtes nécessaires à la construction de Qt pour la plate-forme cible. Par exemple, si votre Qt XML cible est censé 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 plate-forme Qt hôte fournit tous les outils nécessaires est de construire les mêmes modules Qt sur la plate-forme hôte que ceux dont vous aurez besoin sur la plate-forme cible.

Évitez de construire le Qt hôte de manière statique si le Qt cible est construit de manière partagée. Une compilation statique de Qt peut ne pas contenir tous les outils nécessaires pour construire un Qt partagé.

Assurez-vous d'utiliser la même version de Qt pour l'hôte et la cible afin d'éviter les problèmes d'incompatibilité.

Création de la version hôte de Qt

Consultez la documentation de l'hôte souhaité pour obtenir des détails sur la façon de construire Qt pour cette plate-forme.

Pour construire un Qt hôte minimal, utilisez la commande build suivante après avoir configuré Qt :

mkdir ~/QtHostBuild
cd ~/QtHostBuild
~/QtSource/configure -developer-build -nomake tests
cmake --build . --target host_tools

Cette version ne sera pas adaptée au développement de programmes Qt pour votre plate-forme hôte, mais elle contiendra les outils nécessaires à la construction croisée de Qt.

Spécifier la version hôte de Qt lors de la compilation croisée

Lors de la compilation croisée, vous devez indiquer à la version cible de Qt l'emplacement de la version hôte de Qt.

Lorsque vous utilisez le script configure, vous utilisez

~/QtSource/configure -qt-host-path ~/QtHostBuild ...target-specific options...

Lorsque vous utilisez CMake directement, vous utilisez

cmake -S ~/QtSource -DQT_HOST_PATH=~/QtHostBuild ...target-specific options...

Voir la documentation de la cible souhaitée pour les options spécifiques à la cible.

© 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.