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 파일이 생성되어있다.
'이전게시판 > Server' 카테고리의 다른 글
IOCP window 채팅 클라이언트 소스 (0) | 2018.10.04 |
---|---|
IOCP 채팅 서버 소스 예제 (0) | 2018.10.04 |
C4996 에러 (0) | 2018.09.28 |
LNK2019: __imp__closesocket@4 외부 기호(참조 위치: _main 함수)에서 확인하지 못했습니다. (0) | 2018.09.28 |
기본 서버 예제의 문제점 (0) | 2018.07.05 |
C4996 inet_addr Error Solution (0) | 2018.06.30 |
ip주소 추적 (0) | 2018.04.21 |
hosts파일, DNS (0) | 2018.04.21 |