Recommandations pour l'empaquetage de Qt

Les distributions peuvent vouloir empaqueter plusieurs versions différentes de Qt. En prenant l'exemple d'une distribution Linux, nous recommandons l'approche suivante :

  • Configurer Qt pour installer les exécutables sur /usr/qt6/bin.
  • Créez des liens symboliques avec des suffixes de version dans /usr/bin vers les applications destinées à l'utilisateur qui résident dans /usr/qt6/bin. Par exemple, créez le lien symbolique /usr/bin/designer6 qui pointe vers /usr/qt6/bin/designer.

Les applications destinées à l'utilisateur sont des outils Qt qui sont censés être lancés par l'utilisateur. Cela inclut qmake, Qt Widgets Designer, Qt Linguist, et d'autres. D'autres outils, tels que moc, rcc et uic ne sont généralement pas invoqués manuellement par l'utilisateur, mais par le système de construction des projets de l'utilisateur.

Dans le système de construction de Qt, les outils que nous considérons comme étant orientés vers l'utilisateur sont marqués comme tels, et cette information peut être extraite et utilisée comme suit.

Configurez Qt avec les arguments CMake :

-DCMAKE_INSTALL_PREFIX=/usr
-DINSTALL_BINDIR=/usr/qt6/bin
-DINSTALL_PUBLICBINDIR=/usr/bin

Cela créera un fichier appelé user_facing_tool_links.txt dans le répertoire de construction de Qt. Il contient sur chaque ligne le chemin d'un outil destiné à l'utilisateur ( INSTALL_BINDIR ) et, séparé par un espace, le chemin du lien versionné ( INSTALL_PUBLICDIR).

Ce fichier peut être utilisé pour créer tous les liens symboliques versionnés :

xargs ln -s < user_facing_tool_links.txt

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