在c++中使用protobuf

首先下载protobuf-2.5.0,解压之后,打开VS 进行编译,得到libprotoc.lib、libprotobuf-lite.lib、libprotobuf.lib和protoc.exe


创建一个文件proto文件:testpro.proto,内容如下:

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 phone = 4;
}


用protoc.exe对testpro.proto进行编译,命令如下:

protoc -I=$SRC_DIR --cpp_out=$DST_DIR $SRC_DIR/testpro.proto

即:protoc -I=./ --cpp_out=./ ./testpro.proto

那么会在当前目录下得到两个文件testpro.pb.cc和testpro.pb.h


使用vs创建一个工程,将testpro.pb.cc、testpro.pb.h、libprotoc.lib和libprotobuf.lib复制到工程目录下,然后将protobuf-2.5.0\src\google文件夹的路径添加到工程目录中,就可以使用了,代码如下

#include "testpro.pb.h"
#include <iostream>
#include <string>
using namespace std;

#pragma comment(lib,"libprotobuf.lib")
#pragma comment(lib,"libprotobuf-lite.lib")

void TestProto()
{
	Person* per = new Person;

	per->set_id(100);

	per->PrintDebugString();
}

int main()
{
	TestProto();
	return 0;
}


你可能感兴趣的:(在c++中使用protobuf)