qtgrpcgen 도구
qtgrpcgen 도구는 protobuf 스키마를 기반으로 Qt GRPC 서비스 클래스를 생성하는 데 사용할 수 있습니다. 이 도구는 CMake Qt6::GrpcTools 패키지에서 제공됩니다. 이 도구는 Google의 protoc 도구의 확장 기능으로 작동합니다.
find_package(Qt6 COMPONENTS GrpcTools REQUIRED)사용법
Qt는 qtgrpcgen 도구의 사용을 용이하게 해주는 CMake 함수를 제공합니다. CMake를 빌드 도구로 사용할 때는 Qt CMake API를 활용하는 것이 좋습니다. CMake 이외의 빌드 시스템을 사용하는 경우, 'qtgrpcgen 수동 실행'에 설명된 명령어를 조정하여 사용할 수 있습니다.
참고: q make와 함께 xml-ph-0000@deepl.internal 모듈을 사용하여 gRPC™Qt GRPC 및 Protobuf 애플리케이션 빌드에 대한 명시적인 지원은 제공 되지 않습니다.
CMake
다음 CMake 명령을 사용하면 gRPC 서비스를 Qt 프로젝트에 통합할 수 있습니다.
protobuf 스키마를 사용하여 Qt 기반 C++ 서비스를 생성합니다 |
일반적으로 qtgrpcgen 는 다음 예제와 같이 qt_add_grpc 매크로를 사용하여 CMake를 통해 호출됩니다:
cmake_minimum_required(VERSION 3.16...3.22)
project(MyProject)
find_package(Qt6 REQUIRED COMPONENTS Protobuf Grpc)
qt_standard_project_setup()
qt_add_executable(MyApp main.cpp)
qt_add_protobuf(MyApp
PROTO_FILES
path/to/messages.proto
)
qt_add_grpc(MyApp CLIENT
PROTO_FILES
path/to/service.proto
)
target_link_libraries(MyApp PRIVATE Qt6::Protobuf Qt6::Grpc)위의 예제는 qt_add_grpc() CMake 함수를 호출하여, 제공된 protobuf 스키마 내의 service 섹션에 대한 Qt GRPC 코드 생성을 시작합니다.
참고: protobuf 스키마에 message 정의도 포함되어 있는경우 , Qt Protobuf 코드 생성을 시작하려면 qt_add_protobuf() CMake 함수도 호출해야 합니다.
실행 파일(executable) 타깃을 재사용하므로, 생성된 모든 파일은 해당 타깃에 추가되며, 포함 디렉터리도 그에 따라 업데이트됩니다.
qtgrpcgen 수동 실행
protoc --plugin=protoc-gen-qtgrpc=<path/to/bin/>qtgrpcgen \
--qtgrpc_out="[<options>:]<output_dir>" \
[--qtgrpc_opt="<options>"] \
[-I/extra/proto/include/path] \
<protofile>.protooptions 인수는 세미콜론으로 구분된 옵션 목록입니다. 이 인수는 --qtgrpc_out 인수에 콜론으로 구분하여 options 를 추가하거나, 별도의 인수인 --qtgrpc_opt 를 통해 전달할 수 있습니다. 또한 해당 키를 QT_GRPC_OPTIONS 환경 변수로 전달할 수도 있습니다. 키는 반드시 세미콜론으로 구분된 목록 형태로 지정해야 합니다:
export QT_GRPC_OPTIONS="COPY_COMMENTS;GENERATE_PACKAGE_SUBFOLDERS"옵션
이 생성기는 생성 과정을 조정하기 위해 지정할 수 있는 옵션을 지원합니다. 옵션에는 qt_add_grpc 함수 내에서 직접 사용할 수 있는 별칭이 있습니다. 다음 옵션이 지원됩니다:
COPY_COMMENTS.proto파일의 주석을 생성된 코드로 복사합니다.GENERATE_PACKAGE_SUBFOLDERS.proto파일의 패키지 이름 지정자를 사용하여 생성된 파일의 폴더 구조를 만듭니다. 예를 들어, 패키지가 로 정의된 경우, 생성된 파일은 OUTPUT_DIRECTORY/io/qt/test/에 배치됩니다package io.qt.test.EXPORT_MACRO생성된 코드에서 사용되는 export 매크로의 기본 이름을 정의합니다. 최종 매크로 이름은QPB_<EXPORT_MACRO>_EXPORT형식으로 구성됩니다. 이 옵션이 설정되지 않으면 export 매크로가 생성되지 않습니다.Qt 6.8부터는 다음 형식이 지원됩니다:
EXPORT_MACRO=macro_name[:macro_output_file[:<true|false>]]. 이 형식을 사용하면 내보내기 매크로가 포함된 헤더 파일의 이름을 지정하고, 해당 매크로가 생성될지 여부를 명시적으로 제어할 수 있습니다.참고: <macro_output_file> 이 지정되지 않은경우 , 이 옵션은 기본적으로 이전 구문을 사용합니다.
HEADER_GUARD생성된 헤더 파일이 중복 포함되는 것을 방지하기 위해 사용되는 메커니즘을 지정합니다. 가능한 값은pragma,filename입니다. 기본값은filename입니다. 이 옵션을pragma로 설정하면 최신 프래그마 헤더 가드가 생성됩니다:#pragma once ...이 옵션을 생략하거나
filename로 설정하면ifdef래핑 가드가 생성되며, '.proto' 파일명이 가드 접미사로 사용됩니다:#ifdef MYMESSAGES_QPB_H #define MYMESSAGES_QPB_H ... #endif // MYMESSAGES_QPB_H프로젝트 구조에 따라 선호하는 가드 스타일을 선택하십시오.
QMLgRPC 서비스용 QML 클라이언트 생성을 활성화합니다.
© 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.