首先下载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; }