Clazyチェックを使用したC++アプリケーションのQt 6への移植
Qt 5 から Qt 6 へのアプリケーションの移植を支援するため、Clazy フレームワーク内にいくつかのチェック機能と修正機能を実装しました。開発者自身の言葉を借りれば、「Clazy は、clang に Qt のセマンティクスを理解させることを可能にするコンパイラプラグイン」です。 Clazy (https://invent.kde.org/sdk/clazy) を入手し、Qt 6 への移植をよりスムーズに行うために、以下の内容をお読みください。
Clazyのチェックは、コンパイル時にプラグインとして実行するか、clazy-standalone を使用してJSON形式のコンパイルデータベースを介して実行できます。修正は、clang-apply-replacements を使用して後で適用されます。
Qt 6 への移植に特化した Clazy チェック
以下のチェックは、Qt 5 から Qt 6 への移植を容易にするために用意されています。
qt6-deprecated-api-fixesqt6-header-fixesqt6-qhash-signatureqt6-fwd-fixesmissing-qobject-macro
これらのチェックは Qt 5 に対して実行する必要があります。修正されたコードは Qt 6 に対してのみコンパイル可能になります。このため、上記のチェックは一括して実行する必要があります。Clazy では、修正を適用する際の競合を避けるために、テストを 1 回に 1 つずつ実行することを推奨していますが、これらのチェックをプラグインとして実行する場合、この方法は利用できません。
Clazyチェックの適用方法
Clazy を使用してプロジェクトを実行するための設定方法、およびチェックの選択・適用方法については、https://invent.kde.org/sdk/clazy#setting-up-your-project-to-build-with-clazy に詳しく説明されています。
プラグインとしてではなく、JSONコンパイルデータベースを介してチェックを実行したい場合は、clazy-standalone を使用する必要があります。手順については、https://invent.kde.org/sdk/clazy#clazy-standalone-and-json-database-support を参照してください。
簡単に言えば、最新の Clazy バージョンがインストールされていることを前提として、プラグインとしてチェックを実行するために必要な手順を以下に説明します。
Clazy で実行できるようにプロジェクトを設定します。
qmake を使用する場合
お使いのOSに合わせて、qmakeコマンドに以下の行を追加してください:
-spec linux-clang QMAKE_CXX="clazy"
-spec macx-clang QMAKE_CXX="clazy"MSVC を使用する Windows の場合は、QMAKE_CXX="clazy-cl.bat" を追加します。
qmakeを実行します。
CMake を使用する場合
cmake コマンドに「-DCMAKE_CXX_COMPILER=clazy 」を追加してください。
cmake を実行します。
チェック項目を選択します:
export CLAZY_CHECKS="qt6-deprecated-api-fixes,qt6-header-fixes,
qt6-qhash-signature,qt6-qlatin1stringchar-to-u,qt6-fwd-fixes,missing-qobject-macro"fixits を有効にします:
export CLAZY_EXPORT_FIXES=ONClazyが無視するディレクトリを設定します:
export CLAZY_IGNORE_DIRS=.*lib_dir.*これにより、ライブラリのファイルに対して Clazy のチェックが実行されなくなります。これは、ライブラリのパスが-isystem や-framework ではなく、-I や-F で指定されている場合に必要です。また、チェックを引き起こすヘッダーがインクルードされたライブラリのファイルに含まれている場合、qt-header-fixes チェックによる警告を回避するためにも必要です。
コードをコンパイルします。
コンパイル中に、ソースファイルの隣に.yaml ファイルが生成されます。
修正を適用するには、次のコマンドを実行してください:
clang-apply-replacements <path_to_yaml_files>これによりソースファイルが変更されるため、コードのバックアップを取ることをお勧めします。
fixit 間で競合がある場合は通知され、ファイルは変更されません。
すべての移植作業が自動修正ツールで完了するわけではありません。コンパイル中に表示される警告を注意深く確認し、手動で変更が必要なコードを特定してください。
xml-ph-0000@deepl.internal 内で Clazy チェックを適用する方法Qt Creator
Qt Creator 内で Clazy チェックにアクセスするには、Tools >Options >Analyzer を選択します(または Qt Creator macOSの場合は >Preferences >Analyzer )を選択します。
独自の設定を作成し、Qt Creator バージョン 4.14.1 以降で「Level 2」および「Manual Level」セクションにある、移植専用の Clazy チェックを選択する必要があります。qt6フィルターを使用すると、ほとんどのチェックを見つけることができます。上記のリストに記載されているチェックのみを選択するように注意してください。

注: fixitの適用を容易にし、不要な競合を避けるため、移植用チェック以外のすべてのチェックの選択を解除することを推奨します。
チェックを実行するには、Analyze > [Clang-Tidy and Clazy] を選択してください。
Clazyチェックの設定および実行に関する詳細については、「Qt Creator: Clang Tools」を参照してください。
注意
Qt Creator では、fixit 間の競合については警告が表示されません。同じ行に複数の fixit がある場合は、fixit を適用する際に注意が必要です。
fixit を適用すると、新しいコードは 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.