Post

반응형
구글 프로토콜 버퍼 C++ Window 예제 (Google Protocol buffer)
 
구글 프로토콜 버퍼 프로젝트 다운로드 url : https://github.com/google/protobuf/releases/tag/v2.6.1
c++ 튜토리얼 url : https://developers.google.com/protocol-buffers/docs/cpptutorial
 
이 글은 아래 구글 프로토콜 버퍼 유튜브 강의를 정리한 내용입니다. 
 
구글 프로토콜 버퍼 : 구글에서 만든 데이터 직렬화 라이브러리.
 
1. Window용 구글 프로토콜 버퍼 프로젝트 다운로드
아래 사이트에서 Protocol Buffers v2.6.1 Source code(zip) 다운로드 후 압축풀기
 
 
2. protoc.exe 파일 만들기
protobuf-2.6.1\vsprojects\protobuf.sln 을 실행한다.
(이 때 gtest, gtest_main은 컨버터 실패로 사용할 수 없음 떠도 안쓰니까 괜찮다)
libprotobuf, libprotoc 프로젝트 속성 - C/C++ - 전처리기 정의
_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS 를 추가한다
libprotobuf, libprotoc, protoc 프로젝트를 빌드한다.(빌드성공)
 
빌드 후 프로젝트 Debug 폴더에 들어가면 protoc.exe 실행파일이 생성되어있다.
이제 폴더를 새로 만들고 새폴더 안에 넣는다.
(D드라이브에 만들었고 폴더 이름은 protobufapply이다.
위치는 D:\protobufapply)
 
3. proto 파일 만들고 h, cc 파일 생성
텍스트 파일을 생성한다. 이름은 addressbook.proto
그리고 proto 파일에 아래와 같이 입력한다.
반응형
syntax = "proto2";
 
package tutorial;
 
message Person {
  required string name = 1;
  required int32 id = 2;
  optional string email = 3;
 
  enum PhoneType {
    MOBILE = 0;
    HOME = 1;
    WORK = 2;
  }
 
  message PhoneNumber {
    required string number = 1;
    optional PhoneType type = 2 [default = HOME];
  }
 
  repeated PhoneNumber phones = 4;
}
 
message AddressBook {
  repeated Person people = 1;
}
 
 
그리고 cmd 창을 열고 다음 명령어 실행한다.
그러면 addressbook.pb.h, addressbook.pb.cc 파일이 생성되어있다.
protoc -I=. --cpp_out=. addressbook.proto
( 다음과 같이 사용하라고 적혀있다 protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/addressbook.proto )
 
4. 직렬화 샘플 프로젝트 생성
protobufapply 폴더안에 ProjectProto 폴더 생성한다.
그리고 ProjectProto 안에 새 vs 프로젝트를 생성한다.
(콘솔응용프로그램이고 EmptyProject, Precompiled header, Security Development 전부 체크 해제)
vs 프로젝트 폴더안에 addressbook.pb.cc , addressbook.pb.h 파일을 넣어준다.
프로젝트 소스파일에서도 넣어준다.
 
protobuf-2.6.1\vsprojects\protobuf.sln 솔루션 폴더에서 Debug 폴더 안에 있는 libprotobuf.lib 라이브러리를 복사해서
프로젝트 솔루션창에 붙여넣는다.
( 내 솔루션 폴더 위치 : D:\protobuf-2.6.1\protobuf-2.6.1\vsprojects\Debug )
 
그리고 
D:\protobuf-2.6.1\protobuf-2.6.1\src 위치를 복사 한 다음 
프로젝트 속성 - 구성속성 - VC++ 디렉터리 - 포함디렉터리에 
src 위치를 붙여넣는다.
그리고 빌드.
 
성공이라면 아무것도 없는 Main 함수 대신 
듀토리얼 페이지에 있는 샘플코드 Writing A Message 를 붙여넣는다.
빌드 성공이라면
프로젝트 속성 - 구성속성 - 디버깅 - 명령인수에 D:\protobufapply\myPhonebook.bin 입력.
 

프로젝트 실행 후 알맞은 데이터를 입력한다.

그리고 모든 입력을 마쳤다면 leave blank to finish 메시지가 보일 때 엔터를 눌러 빠져나온다.
그리고 D:\protobufapply 폴더로 가면 myPhonebook.bin 파일이 생성되어있다.
 
 
 
 
반응형
▲ top