Protocol Buffers

C & C++ 관련 : 2019.11.08 13:20

https://github.com/protocolbuffers/protobuf

 

protocolbuffers/protobuf

Protocol Buffers - Google's data interchange format - protocolbuffers/protobuf

github.com

설치

$ sudo apt-cache search protobuf | grep -i proto

그 중에 C++ 라이브러리 설치.

$ sudo apt-get install libprotobuf-dev

컴파일러 설치 

$ sudo apt-get install protobuf-compiler

person.proto 를 만듬.

  1 syntax="proto3";
  2 message Person{
  3         string name = 1; //필수
  4         int32 id = 2;
  5         repeated string email = 3; //배열
  6         enum RaceType{
  7                 BLACK = 0;
  8                 YELLOW = 1;
  9                 WHITE = 2;
 10         }       
 11         message PersonType{
 12                 RaceType type =1;
 13         }       
 14 }

이렇게.

만든것을 컴파일 함. 난 C++ 용으로 만듬.

$ protoc -I=./ --cpp_out=./ ./person.proto

이렇게 하면

-rw-rw-r--  1 lionelj lionelj  18K 11월  8 13:27 person.pb.cc
-rw-rw-r--  1 lionelj lionelj 9.3K 11월  8 13:27 person.pb.h
-rw-rw-r--  1 lionelj lionelj  118 11월  8 13:27 person.proto

h랑 cc 가 생김.

참고로 Proto3 에서는 optional , default, reqired 없어짐.

person.proto:12:26: Explicit 'optional' labels are disallowed in the Proto3 syntax. To define 'optional' fields in Proto3, simply remove the 'optional' label, as fields are 'optional' by default.

person.proto: Explicit default values are not allowed in proto3.
person.proto: Required fields are not allowed in proto3.

person.proto: Required fields are not allowed in proto3.

'C & C++ 관련' 카테고리의 다른 글

Protocol Buffers  (0) 2019.11.08
About pipe buffer size. 파이프 버퍼 싸이즈 fifo pipe  (0) 2014.03.28
Socket programming in C using http post  (0) 2013.12.03
File open  (0) 2012.11.02
Posted by Real_G

댓글을 달아 주세요