qtprotobufgenツール
qtprotobufgen
ツールを使用して、protobuf スキーマからQt Protobuf クラスを生成できます。このツールはCMakeQt6::ProtobufTools
パッケージで提供されています。Googleのprotoc
ツールの拡張として動作します。
find_package(Qt6 COMPONENTS ProtobufTools REQUIRED)
使用方法
Qt はqtprotobufgen
ツールの使用を容易にする CMake 関数を提供しています。CMakeをビルドツールとして使用する場合は、Qt CMake APIを使用することを推奨します。CMake以外のビルドシステムを使用する場合は、「手動で実行する」で説明されているコマンドを使用してください。
注意: ビルドツールとして gRPC™およびProtobufアプリケーションをqmakeで Qt GRPC モジュールを使用してビルドするための明示的なサポートはありません。
CMake
以下のCMakeコマンドは、ProtobufスキーマをQtプロジェクトに統合します。
protobuf スキーマを使用して Qt ベースの C++ ソースコードを生成します。 |
通常、qtprotobufgen
は、qt_add_protobuf
マクロを使用して CMake から呼び出されます。
qt_add_protobuf を使う
cmake_minimum_required(VERSION 3.16...3.22) project(MyThings) find_package(Qt6 REQUIRED COMPONENTS Protobuf) qt_standard_project_setup() qt_add_protobuf(MyMessages GENERATE_PACKAGE_SUBFOLDERS PROTO_FILES path/to/message.proto path/to/other_message.proto PROTO_INCLUDES /path/to/proto/include ) qt_add_executable(MyApp main.cpp) target_link_libraries(MyApp PRIVATE MyMessages)
上の例では、PROTO_FILES
オプションに渡されたパスで定義されたメッセージタイプを含むMyMessages
というライブラリを生成しています。GENERATE_PACKAGE_SUBFOLDERS
オプションは、生成されたファイルのフォルダ構造を生成します。また、PROTO_INCLUDES
オプションは、指定されたディレクトリで依存関係やインポートを探すように protoc に指示します。MyApp
という実行可能ファイルのターゲットを作成し、MyMessages
ライブラリにリンクします。
手動での実行
protoc --plugin=protoc-gen-qtprotobuf=<path/to/bin/>qtprotobufgen \ --qtprotobuf_out="[<options>:]<output_dir>" \ [--qtprotobuf_opt="<options>"] \ [-I/extra/proto/include/path] \ <protofile>.proto
options
引数はセミコロンで区切られたオプションのリストである。これは2通りの方法で渡すことができる。コロンで区切られたoutput_dir引数のオプションの前に付ける方法。または、別の引数--qtprotobuf_opt
。また、対応するキーをQT_PROTOBUF_OPTIONS
環境変数として渡すこともできる。キーはセミコロンで区切られたリストで指定する必要がある:
export QT_PROTOBUF_OPTIONS="COPY_COMMENTS;GENERATE_PACKAGE_SUBFOLDERS"
オプション
ジェネレータは、生成を調整するためのオプションをサポートしています。オプションはqt_add_protobuf関数に直接エイリアスを持っています。以下のオプションがサポートされています:
COPY_COMMENTS
.proto
ファイルのコメントを生成コードにコピーします。GENERATE_PACKAGE_SUBFOLDERS
生成されるファイルのフォルダ構造を作成するために、 ファイルからパッケージ名指定子を使用します。たとえば、パッケージがと定義されている場合、生成されたファイルは.proto
package io.qt.test
OUTPUT_DIRECTORY/io/qt/test/ に置かれます。EXPORT_MACRO
は、生成されるコードで使用されるエクスポート・マクロのベース名を定義します。最終的なマクロ名は のように構築される。このオプションが設定されていない場合、エクスポートマクロは生成されません。QPB_<EXPORT_MACRO>_EXPORT
Qt 6.8 以降では、以下の形式がサポートされています:
EXPORT_MACRO=macro_name[:macro_output_file[:<true|false>]]
.このフォーマットでは、エクスポート・マクロを含むヘッダー・ファイルの名前を指定し、それが生成されるかどうかを明示的に制御することができます。注意: <macro_output_file>が指定されていない場合、オプションのデフォルトは以前の構文になります。
© 2025 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.