qtgrpcgen 도구

qtgrpcgen 도구는 프로토뷰 스키마에서 Qt GRPC 서비스 클래스를 생성하는 데 사용할 수 있습니다. 이 도구는 CMake Qt6::GrpcTools 패키지에서 제공합니다. 이 도구는 Google의 protoc 도구의 확장으로 작동합니다.

find_package(Qt6 COMPONENTS GrpcTools REQUIRED)

사용법

Qt는 qtgrpcgen 도구의 사용을 용이하게 하는 CMake 함수를 제공합니다. 빌드 도구로 CMake를 사용할 때는 Qt CMake API를 사용하는 것이 좋습니다. CMake 이외의 빌드 시스템의 경우, qtgrpcgen 실행에 설명된 명령을 수동으로 조정할 수 있습니다.

참고: 빌드에 대한 명시적인 지원은 없습니다. gRPCQt GRPC 및 Protobuf 애플리케이션 빌드에 대한 명시적인 지원은 없습니다.

CMake

다음 CMake 명령은 gRPC 서비스를 Qt 프로젝트에 통합합니다.

qt_add_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 함수를 호출하여 제공된 프로토뷰 스키마 내의 service 섹션에 대한 Qt GRPC 코드 생성을 시작합니다.

참고: protobuf 스키마에 message 정의도 포함된 경우 qt_add_protobuf() CMake 함수도 호출하여 Qt Protobuf 코드 생성을 시작해야 합니다.

실행 가능한 타겟을 재사용하므로 생성된 모든 파일이 타겟에 추가되고 그에 따라 포함 디렉터리가 업데이트됩니다.

qtgrpcgen 수동으로 실행하기

protoc --plugin=protoc-gen-qtgrpc=<path/to/bin/>qtgrpcgen \
    --qtgrpc_out="[<options>:]<output_dir>" \
    [--qtgrpc_opt="<options>"] \
    [-I/extra/proto/include/path] \
    <protofile>.proto

options 인수는 세미콜론으로 구분된 옵션 목록입니다. --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 파일의 패키지 이름 지정자를 사용하여 생성된 파일의 폴더 구조를 만듭니다. 예를 들어 패키지가 다음과 같이 정의된 경우: package io.qt.test 로 정의된 경우 생성된 파일은 출력 디렉토리/io/qt/test/에 배치됩니다.
  • EXPORT_MACRO 는 생성된 코드에 사용되는 내보내기 매크로의 기본 이름을 정의합니다. 최종 매크로 이름은 QPB_<EXPORT_MACRO>_EXPORT 로 구성됩니다. 이 옵션을 설정하지 않으면 내보내기 매크로가 생성되지 않습니다.

    Qt 6.8부터 다음 형식이 지원됩니다: EXPORT_MACRO=macro_name[:macro_output_file[:<true|false>]]. 이 형식을 사용하면 내보내기 매크로가 포함된 헤더 파일의 이름을 지정하고 생성 여부를 명시적으로 제어할 수 있습니다.

    참고: <macro_output_file>을 제공하지 않으면 옵션은 기본적으로 이전 구문을 사용합니다.

  • QML gRPC 서비스에 대한 QML 클라이언트를 생성할 수 있습니다.

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