qt_add_grpc
Qt Protobuf 스키마를 사용하여 Qt 기반 C++ 서비스를 생성합니다.
참고: 이 명령은 기술 프리뷰 버전이며 향후 릴리스에서 변경될 수 있습니다.
이 명령은 Qt 6.5에 도입되었습니다.
일반적으로 qtgrpcgen
는 qt_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
에 의해 생성되어 대상에 추가됩니다. 타깃이 이미 존재하는 경우 파일이 타깃 소스 목록에 추가됩니다. 타겟이 존재하지 않으면 링크해야 하는 라이브러리로 생성됩니다.
라이브러리 gRPC™qt_add_grpc
명령을 사용하여 생성된 라이브러리는 서비스 호출에 사용되는 프로토비프 심볼을 참조합니다. 즉, qt_add_protobuf 및 qt_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.