qt_add_grpc

Qt Protobuf 스키마를 사용하여 Qt 기반 C++ 서비스를 생성합니다.

참고: 이 명령은 기술 프리뷰 버전이며 향후 릴리스에서 변경될 수 있습니다.

이 명령은 Qt 6.5에 도입되었습니다.

일반적으로 qtgrpcgenqt_add_grpc CMake 매크로를 통해 호출됩니다.

qt_add_grpc(<target> <CLIENT|SERVER>
    PROTO_FILES <file> ...
    [PROTO_INCLUDES <path> ...]
    [QML]
    [OUTPUT_DIRECTORY <dir>]
    [GENERATE_PACKAGE_SUBFOLDERS]
    [COPY_COMMENTS]
    [EXPORT_MACRO <infix>]
    [OUTPUT_HEADERS <var>]
    [OUTPUT_TARGETS <var>]
)

참고: 현재 CLIENT 코드 생성만 지원됩니다.

소스 파일은 qtgrpcgen 에 의해 생성되어 대상에 추가됩니다. 타깃이 이미 존재하는 경우 파일이 타깃 소스 목록에 추가됩니다. 타겟이 존재하지 않으면 링크해야 하는 라이브러리로 생성됩니다.

라이브러리 gRPCqt_add_grpc 명령을 사용하여 생성된 라이브러리는 서비스 호출에 사용되는 프로토비프 심볼을 참조합니다. 즉, qt_add_protobufqt_add_grpc 호출 모두에서 공통 대상을 사용하거나 생성된 protobuf 라이브러리를 gRPC 라이브러리에 링크해야 합니다.

위의 문장을 고려하면 protobuf와 gRPC 클라이언트 코드 모두에 대상을 재사용할 수 있습니다:

# Generate the protobuf types first
qt_add_protobuf(test_service_client
    PROTO_FILES
        test_service.protobuf
)
...
# Reuse the protobuf target and extend it with \gRPC client
# functionality
qt_add_grpc(test_service_client CLIENT
    PROTO_FILES
        test_service.protobuf
)

별도의 타깃을 사용하려면 gRPC 클라이언트 타깃을 protobuf 타깃에 연결해야 합니다:

# Generate the protobuf types first
qt_add_protobuf(test_service_protobuf
    PROTO_FILES
        test_service.protobuf
)
...
# Add separate target with the generated code of the \gRPC client.
qt_add_grpc(test_service_client CLIENT
    PROTO_FILES
        test_service.protobuf
)
target_link_libraries(test_service_client PRIVATE test_service_protobuf)

인수

  • PROTO_FILES 는 코드 생성 절차에서 사용하는 .proto 파일 목록을 지정합니다.
  • PROTO_INCLUDES protobuf 종속성을 검색할 디렉터리 목록을 지정합니다.

    참고: PROTO_FILES 의 위치는 암시적으로 protobuf 포함 경로의 일부로 간주됩니다.

  • QML gRPC 서비스에 대한 QML 클라이언트 API를 생성합니다. 이 인수는 GrpcQuick Qt 컴포넌트가 필요합니다.
    find_package(Qt6 6.8 REQUIRED COMPONENTS Quick Protobuf ProtobufQuick Grpc GrpcQuick)
    ...
    # Generate the protobuf types
    qt_add_protobuf(test_service_client
        PROTO_FILES
            test_service.protobuf
        QML
    )
    ...
    # Generate \gRPC client functionality
    qt_add_grpc(test_service_client CLIENT
        PROTO_FILES
            test_service.protobuf
        QML
    )
  • OUTPUT_DIRECTORY 생성된 파일이 저장될 디렉터리를 정의합니다. 기본적으로 현재 빌드 디렉터리가 사용됩니다.
  • GENERATE_PACKAGE_SUBFOLDERS .proto 파일의 패키지 이름 지정자를 사용하여 생성된 파일의 폴더 구조를 만듭니다. 예를 들어 패키지가 다음과 같이 정의된 경우 package io.qt.test 로 정의된 경우 생성된 파일은 출력 디렉토리/io/qt/test/에 배치됩니다.
  • COPY_COMMENTS.proto 파일의 주석을 생성된 코드에 복사합니다.
  • EXPORT_MACRO <대상>에서 새 공유 라이브러리를 생성할 때만 적용됩니다 . 이 옵션은 생성된 코드에 사용되는 내보내기 매크로의 기본 이름을 지정합니다. 최종 매크로 이름은 QPB_<EXPORT_MACRO>_EXPORT 로 구성됩니다. 이 옵션을 설정하지 않으면 대상 이름이 EXPORT_MACRO 로 사용됩니다.

    자세한 내용은 공유 라이브러리 만들기를 참조하세요.

  • OUTPUT_HEADERS 생성된 헤더 목록을 저장할 변수를 지정합니다. 이 목록은 사용자 지정 프로젝트 설치 규칙을 정의하는 데 유용할 수 있습니다.
  • OUTPUT_TARGETS 생성된 대상 목록을 저장할 변수를 지정합니다. 이 목록은 사용자 지정 프로젝트 설치 규칙을 정의하는 데 유용할 수 있습니다.

qtgrpcgen 도구도참조하세요 .

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