google/protocol-buffers

Protocol Buffers : Language Guide (proto3) - Generating Your Classes

C/H 2018. 9. 10. 08:30

Index

Generating Your Classes 클래스 생성

To generate the Java, Python, C++, Go, Ruby, Objective-C, or C# code you need to work with the message types defined in a .proto file, you need to run the protocol buffer compiler protoc on the .proto. If you haven't installed the compiler, download the package and follow the instructions in the README. or Go, you also need to install a special code generator plugin for the compiler: you can find this and installation instructions in the golang/protobuf repository on GitHub.
Java, Python, C++, Go, Ruby, Object-C 또는 C# 코드를 생성하려면 .proto 파일에 정의된 메시지 유형으로 작업하고, 프로토콜 버퍼 컴파일러에서 프로토콜 버퍼 컴파일러를 실행해야 한다. 컴파일러를 설치하지 않은 경우 패키지를 다운로드하고 README의 지침을 따라라. 또는 Go, 컴파일러용 특수 코드 생성기 플러그인도 설치해야 한다. GitHub의 골랑/protobuf 저장소에서 이 명령과 설치 지침을 확인할 수 있다.

The Protocol Compiler is invoked as follows:
프로토콜 컴파일러는 다음과 같이 호출된다.

protoc --proto_path=IMPORT_PATH --cpp_out=DST_DIR --java_out=DST_DIR --python_out=DST_DIR --go_out=DST_DIR --ruby_out=DST_DIR --objc_out=DST_DIR --csharp_out=DST_DIR path/to/file.proto
  • IMPORT_PATH specifies a directory in which to look for .proto files when resolving import directives. If omitted, the current directory is used. Multiple import directories can be specified by passing the --proto_path option multiple times; they will be searched in order. -I=IMPORT_PATH can be used as a short form of --proto_path.
    IMPORT_PATH는 가져오기 지시사항을 해결할 때 .proto 파일을 찾을 디렉토리를 지정한다. 생략하면 현재 디렉터리가 사용된다. --proto_path 옵션을 여러 번 전달하여 여러 개의 가져오기 디렉토리를 지정할 수 있습니다. 디렉토리는 순서대로 검색된다. -I=IMPORT_PATH는 --proto_path의 짧은 형식으로 사용할 수 있다.
  • You can provide one or more output directives:
    다음 중 하나 이상의 출력 지침을 제공할 수 있다.
    • --cpp_out generates C++ code in DST_DIR. See the C++ generated code reference for more.
      --cpp_out은 DST_DIR에서 C++ 코드를 생성한다. 자세한 내용은 C++ 생성 코드 참조를 참조.
    • --java_out generates Java code in DST_DIR. See the Java generated code reference for more.
      --java_out은 DST_DIR에서 Java 코드를 생성한다. 자세한 내용은 Java 생성 코드 참조를 참조.
    • --python_out generates Python code in DST_DIR. See the Python generated code reference for more.
      --python_out은 DST_DIR에서 Python 코드를 생성한다. 자세한 내용은 Python에서 생성한 코드 참조를 참조.
    • --go_out generates Go code in DST_DIR. See the Go generated code reference for more.
      --go_out은 DST_DIR에서 Go 코드를 생성한다. 자세한 내용은 Go generated code reference를 참조.
    • --ruby_out generates Ruby code in DST_DIR. Ruby generated code reference is coming soon!
      --ruby_out은 DST_DIR에서 Ruby 코드를 생성한다. Ruby가 생성한 코드 참조가 곧 출시될것이다!
    • --objc_out generates Objective-C code in DST_DIR. See the Objective-C generated code reference for more.
      --objc_out은 DST_DIR에서 Object-C 코드를 생성한다. 자세한 내용은 목표-C에서 생성한 코드 참조.
    • --csharp_out generates C# code in DST_DIR. See the C# generated code reference for more.
      --csharp_out은 DST_DIR에서 C# 코드를 생성한다. 자세한 내용은 C#에서 생성한 코드 참조.
    • --php_out generates PHP code in DST_DIR. See the PHP generated code reference for more.
      --php_out은 DST_DIR에서 PHP 코드를 생성한다. 자세한 내용은 PHP 생성 코드 참조.
  • As an extra convenience, if the DST_DIR ends in .zip or .jar, the compiler will write the output to a single ZIP-format archive file with the given name. .jar outputs will also be given a manifest file as required by the Java JAR specification. Note that if the output archive already exists, it will be overwritten; the compiler is not smart enough to add files to an existing archive.
    또한 DST_DIR이 .zip 또는 .jar로 끝나는 경우 컴파일러는 지정된 이름의 단일 ZIP 형식 아카이브 파일에 출력을 기록한다. 또한 Java JAR 규격에서 요구하는 매니페스트 파일이 .jar 출력에 제공된다. 출력 아카이브가 이미 있으면 덮어씁니다. 컴파일러는 기존 아카이브에 파일을 추가할 만큼 똑똑하지 않다.
  • You must provide one or more .proto files as input. Multiple .proto files can be specified at once. Although the files are named relative to the current directory, each file must reside in one of the IMPORT_PATHs so that the compiler can determine its canonical name.
    하나 이상의 .proto 파일을 입력으로 제공해야 한다. 한 번에 여러 개의 .proto 파일을 지정할 수 있다. 파일 이름은 현재 디렉토리를 기준으로 지정되지만 각 파일은 컴파일러의 정식 이름을 결정할 수 있도록 IMPORT_PATH 중 하나에 있어야 한다.


반응형