Portierung von C++-Anwendungen auf Qt 6 mithilfe von Clazy-Prüfungen
Wir haben im Clazy-Framework einige Prüfungen und Korrekturen implementiert, um Ihnen bei der Portierung Ihrer Anwendungen von Qt 5 auf Qt 6 zu helfen. Mit den Worten der Entwickler: „Clazy ist ein Compiler-Plugin, das es clang ermöglicht, die Qt-Semantik zu verstehen“. Laden Sie Clazy herunter (https://invent.kde.org/sdk/clazy) und lesen Sie weiter, um die Portierung auf Qt 6 reibungsloser zu gestalten.
Clazy-Prüfungen können als Plugin während der Kompilierung oder über eine JSON-Kompilierungsdatenbank mit dem Befehl ` clazy-standalone` ausgeführt werden. Die Korrekturen werden später mit dem Befehl ` clang-apply-replacements` angewendet.
Clazy-Prüfungen speziell für die Portierung auf Qt 6
Die folgenden Checks dienen dazu, die Portierung von Qt 5 auf Qt 6 zu vereinfachen.
qt6-deprecated-api-fixesqt6-header-fixesqt6-qhash-signatureqt6-fwd-fixesmissing-qobject-macro
Die Prüfungen müssen gegen Qt 5 ausgeführt werden. Der korrigierte Code lässt sich erst gegen Qt 6 kompilieren. Aus diesem Grund müssen die oben genannten Prüfungen in einem Durchgang ausgeführt werden. Clazy empfiehlt, jeweils nur einen Test auszuführen, um Konflikte beim Anwenden von Korrekturen zu vermeiden, doch dies ist keine Option, wenn diese Prüfungen als Plugin ausgeführt werden.
So wenden Sie Clazy-Prüfungen an
Wie Sie Ihr Projekt für die Ausführung mit Clazy einrichten und wie Sie die Prüfungen auswählen und anwenden, wird hier ausführlich erklärt: https://invent.kde.org/sdk/clazy#setting-up-your-project-to-build-with-clazy.
Wenn Sie die Prüfungen nicht als Plugin, sondern über eine JSON-Kompilierungsdatenbank ausführen möchten, müssen Sie clazy-standalone verwenden. Eine Anleitung finden Sie unter https://invent.kde.org/sdk/clazy#clazy-standalone-and-json-database-support.
Kurz gesagt: Vorausgesetzt, Sie haben eine aktuelle Clazy-Version installiert, wird im Folgenden erläutert, was zu tun ist, um die Prüfungen als Plugin auszuführen.
Richten Sie Ihr Projekt für die Ausführung mit Clazy ein.
Bei Verwendung von qmake
Fügen Sie Ihrem qmake-Befehl die folgenden Zeilen hinzu, entsprechend Ihrem Betriebssystem:
-spec linux-clang QMAKE_CXX="clazy"
-spec macx-clang QMAKE_CXX="clazy"Für Windows mit MSVC fügen Sie „ QMAKE_CXX="clazy-cl.bat" “ hinzu.
Führen Sie qmake aus.
Bei Verwendung von CMake
Fügen Sie „ -DCMAKE_CXX_COMPILER=clazy “ zum CMake-Befehl hinzu.
Führen Sie cmake aus.
Wählen Sie die Prüfungen aus:
export CLAZY_CHECKS="qt6-deprecated-api-fixes,qt6-header-fixes,
qt6-qhash-signature,qt6-qlatin1stringchar-to-u,qt6-fwd-fixes,missing-qobject-macro"Aktivieren Sie die „Fixits“:
export CLAZY_EXPORT_FIXES=ONLegen Sie die Verzeichnisse fest, die von Clazy ignoriert werden sollen:
export CLAZY_IGNORE_DIRS=.*lib_dir.*Dadurch wird verhindert, dass Clazy-Prüfungen für die Dateien der Bibliotheken ausgeführt werden. Dies ist erforderlich, wenn die Pfade der Bibliotheken mit -I und -F anstelle von -isystem und -framework eingebunden werden. Dies ist außerdem erforderlich, um Warnungen durch die Prüfung „ qt-header-fixes “ zu vermeiden, falls die Header, die diese Prüfung auslösen, in den Dateien der eingebundenen Bibliotheken enthalten sind.
Kompilieren Sie Ihren Code.
Während der Kompilierung werden neben den Quelldateien Dateien mit dem Namen „ .yaml “ erstellt.
Um die Korrekturen anzuwenden, führen Sie folgenden Befehl aus:
clang-apply-replacements <path_to_yaml_files>Dadurch werden die Quelldateien geändert; denken Sie daran, eine Sicherungskopie Ihres Codes zu erstellen.
Sollten Konflikte zwischen den Korrekturen auftreten, werden Sie benachrichtigt und es wird keine Datei geändert.
Nicht alle Portierungen lassen sich mit automatischen Korrekturen durchführen. Bitte achten Sie sorgfältig auf die Warnungen während der Kompilierung, um den Code zu identifizieren, der manuell geändert werden muss.
So wenden Sie Clazy-Prüfungen in Qt Creator
Sie können in „ Qt Creator “ auf Clazy-Prüfungen zugreifen, indem Sie „ Tools “ > „ Options “ > „ Analyzer “ auswählen (oder Qt Creator > „ Preferences “ > „ Analyzer “ unter macOS).
Sie müssen Ihre eigene Konfiguration erstellen und die für die Portierung vorgesehenen Clazy-Prüfungen auswählen, die Sie in der Version 4.14.1 oder höher von „ Qt Creator “ unter den Abschnitten „Level 2“ und „Manual Level“ finden. Mit dem Filter „qt6“ können Sie die meisten dieser Prüfungen finden. Achten Sie darauf, nur die Prüfungen auszuwählen, die in der oben angegebenen Liste aufgeführt sind.

Hinweis: Wir empfehlen, alle anderen Prüfungen außer den Portierungsprüfungen zu deaktivieren, um die Anwendung von „Fixits“ zu vereinfachen und unnötige Konflikte zu vermeiden.
Um die Prüfungen auszuführen, wählen Sie „ Analyze “ > „ Clang-Tidy and Clazy “.
Weitere Informationen zum Konfigurieren und Ausführen von Clazy-Prüfungen finden Sie unter „Qt Creator: Clang Tools“.
Ein Hinweis
In „ Qt Creator “ werden Konflikte zwischen Fixits nicht gemeldet. Wenn sich mehr als ein Fixit in derselben Zeile befindet, sollten Sie bei der Anwendung der Fixits vorsichtig sein.
Sobald ein „Fixit“ angewendet wurde, schlägt die erneute Ausführung der Prüfungen fehl, da der neue Code nur mit Qt 6 kompiliert werden kann.
© 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.