qtprotobufgen 도구

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

find_package(Qt6 COMPONENTS ProtobufTools REQUIRED)

사용법

Qt는 qtprotobufgen 도구의 사용을 용이하게 하는 CMake 함수를 제공합니다. 빌드 도구로 CMake를 사용할 때는 Qt CMake API를 사용하는 것을 권장합니다. CMake 이외의 빌드 시스템의 경우 수동으로 실행하기에서 설명한 명령을 적용하십시오.

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

CMake

다음 CMake 명령은 Qt 프로젝트에 Protobuf 스키마를 통합합니다.

qt_add_protobuf

프로토뷰 스키마를 사용하여 Qt 기반 C++ 소스 코드를 생성합니다.

일반적으로 qtprotobufgenqt_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 인수는 세미콜론으로 구분된 옵션 목록입니다. 이 인수는 가지 방법으로 전달할 수 있습니다. 옵션을 콜론으로 구분하여 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 로 정의된 경우 생성된 파일은 출력 디렉토리/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.