Sur cette page

Portage d'applications C++ vers Qt 6 en utilisant les contrôles Clazy

Nous avons mis en place des contrôles et des correctifs dans le cadre de Clazy pour vous aider à porter vos applications de Qt 5 à Qt 6. Selon leurs propres termes : "Clazy est un plugin de compilation qui permet à clang de comprendre la sémantique de Qt. Téléchargez Clazy(https://invent.kde.org/sdk/clazy) et lisez la suite pour faciliter le portage vers Qt 6.

Les vérifications de Clazy peuvent être exécutées comme un plugin pendant la compilation ou sur une base de données de compilation JSON en utilisant clazy-standalone. Les correctifs sont appliqués plus tard, en utilisant clang-apply-replacements.

Vérifications Clazy dédiées au portage de Qt 6

Les vérifications suivantes sont dédiées à faciliter le portage de Qt 5 vers Qt 6.

  • qt6-deprecated-api-fixes
  • qt6-header-fixes
  • qt6-qhash-signature
  • qt6-fwd-fixes
  • missing-qobject-macro

Les vérifications doivent être exécutées sur Qt 5. Le code corrigé ne sera compilé que sur Qt 6. Pour cette raison, les vérifications mentionnées ci-dessus doivent être exécutées en une seule fois. Clazy recommande d'exécuter un test à la fois pour éviter les conflits lors de l'application des corrections, mais ce n'est pas une option lorsque ces vérifications sont exécutées en tant que plugin.

Comment appliquer les vérifications de Clazy

La façon de configurer votre projet pour qu'il fonctionne avec Clazy et la façon de sélectionner et d'appliquer les vérifications sont expliquées ici : https://invent.kde.org/sdk/clazy#setting-up-your-project-to-build-with-clazy.

Si vous ne souhaitez pas exécuter les contrôles en tant que plugin mais plutôt sur une base de données de compilation JSON, vous devez utiliser clazy-standalone. Veuillez consulter https://invent.kde.org/sdk/clazy#clazy-standalone-and-json-database-support pour les instructions.

En résumé, en supposant que vous ayez installé une version à jour de Clazy, ce qu'il faut faire pour exécuter les contrôles en tant que plugin est expliqué ci-dessous.

Configurez votre projet pour qu'il fonctionne avec Clazy.

Si vous utilisez qmake

Ajoutez les lignes suivantes à votre commande qmake, en fonction de votre système d'exploitation :

-spec linux-clang QMAKE_CXX="clazy"
-spec macx-clang QMAKE_CXX="clazy"

Pour Windows avec MSVC, ajoutez QMAKE_CXX="clazy-cl.bat".

Exécutez qmake.

Si vous utilisez CMake

Ajoutez : -DCMAKE_CXX_COMPILER=clazy à la commande cmake.

Exécutez cmake.

Sélectionnez les vérifications :

export CLAZY_CHECKS="qt6-deprecated-api-fixes,qt6-header-fixes,
qt6-qhash-signature,qt6-qlatin1stringchar-to-u,qt6-fwd-fixes,missing-qobject-macro"

Activer les fixits :

export CLAZY_EXPORT_FIXES=ON

Définir les répertoires à ignorer par Clazy :

export CLAZY_IGNORE_DIRS=.*lib_dir.*

Cela empêchera les vérifications de Clazy de s'exécuter sur les fichiers des bibliothèques. Ceci est nécessaire si les chemins des bibliothèques sont inclus avec -I et -F au lieu de -isystem et -framework. C'est également nécessaire pour éviter les avertissements de la vérification qt-header-fixes, si les en-têtes déclenchant la vérification sont inclus dans les fichiers des bibliothèques incluses.

Compilez votre code.

Lors de la compilation, les fichiers .yaml sont créés à côté des fichiers source.

Pour appliquer les correctifs, exécutez :

clang-apply-replacements <path_to_yaml_files>

Cela modifiera les fichiers source, pensez à sauvegarder votre code.

S'il y a des conflits entre les fixits, vous en serez informé et aucun fichier ne sera modifié.

Tous les portages ne peuvent pas être réalisés avec des fixits automatiques. Veuillez regarder attentivement les avertissements lors de la compilation pour le code qui devra être modifié manuellement.

Comment appliquer les contrôles Clazy dans Qt Creator

Vous pouvez accéder aux vérifications Clazy dans Qt Creator en sélectionnant Tools > Options > Analyzer (ou Qt Creator > Preferences > Analyzer sur macOS).

Vous devez créer votre propre configuration et sélectionner les vérifications Clazy dédiées au portage que vous pouvez trouver dans les sections Niveau 2 et Niveau manuel dans Qt Creator version 4.14.1, ou ultérieure. Vous pouvez utiliser le filtre qt6 pour localiser la plupart des contrôles. Veillez à ne sélectionner que les contrôles présents dans la liste ci-dessus.

Filtrage des contrôles Qt 6

Note : Nous vous recommandons de désélectionner tous les autres contrôles, à l'exception des contrôles de portage, afin de faciliter l'application des correctifs et d'éviter les conflits inutiles.

Pour exécuter les contrôles, sélectionnez Analyze > Clang-Tidy and Clazy.

Pour plus d'informations sur la configuration et l'exécution des vérifications Clazy, voir Qt Creator: Clang Tools.

Un mot d'avertissement

Dans Qt Creator, les conflits entre fixits ne sont pas prévenus. S'il y a plus d'un fixit sur la même ligne, soyez prudent lorsque vous appliquez les fixits.

Une fois qu'un fixit a été appliqué, relancer les vérifications échouera, car le nouveau code ne se compilera qu'avec Qt 6.

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