首先是.proto文件
然后使用protoc命令生成.h和.cc文件
protoc --cpp_out=. ./*.proto
进行序列化和反序列化 test.cpp
#include <iostream>
#include <string>
#include "test.pb.h"
std::string serialize(std::string id,std::string name) {
std::cout << "serialize" << std::endl;
test::test test;
test.set_id(id);
test.set_name(name);
//序列化操作
std::string data;
test.SerializeToString(&data);
return data;
}
void deserialization(std::string data) {
std::cout << "deserialize" << std::endl;
test::test test;
//反序列化操作
test.ParseFromString(data);
std::cout<<test.id()<<std::endl;
std::cout<<test.name()<<std::endl;
}
int main() {
std::string data=serialize("01","qwer");
deserialization(data);
google::protobuf::ShutdownProtobufLibrary(); //删除所有已分配的内存
return 0;
}
编译代码
sudo g++ test.cpp test.pb.h test.pb.cc -o test -lprotobuf
运行代码