protobuf - 01 hello world

1、CentOS 安装 protobuf 

    系统环境:

# cat /proc/version

Linux version 3.10.0-693.2.2.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC) ) #1 SMP Tue Sep 12 22:26:13 UTC 2017

下载版本:protobuf-all-3.13.0.tar.gz https://github.com/protocolbuffers/protobuf/releases/tag/v3.13.0

编译、安装、配置环境变量后,开始使用。

 

2、C++ 使用 protobuf

2.1、编写 .proto文件

创建 person.proto,输入以下内容:

//syntax = "proto3"; // 暂时默认使用proto2
package x;
message person
{
   required string name = 1;
   required int32 id = 2;
   optional string email = 3;
}

2.2 使用 protoc 工具

将生成同名的.pb.cc文件和.pb.h文件:

# protoc person.proto --cpp_out=.
[libprotobuf WARNING google/protobuf/compiler/parser.cc:648] No syntax specified for the proto file: person.proto. Please use 'syntax = "proto2";' or 'syntax = "proto3";' to specify a syntax version. (Defaulted to proto2 syntax.) //警告信息先忽略
# ls
person.pb.cc  person.pb.h  person.proto

2.3 创建 test.cpp

调用 person.pb.cc、person.pb.h文件

# cat test.cpp 
#include 
#include 
#include "person.pb.h"    //引用刚刚生成的文件

using namespace std;

int main()
{
	x::person p;
	p.set_name("zhangsan");
	p.set_id(123456);
	p.set_email("[email protected]");

	cout << p.name() << endl;
	cout << p.id() << endl;
	cout << p.email() << endl;	
	return 0;
}

2.4 编译 test.cpp

# g++ person.pb.cc test.cpp -o out -lprotobuf -std=c++11 -g -lpthread
# ls
out  person.pb.cc  person.pb.h  person.proto  test.cpp

2.5 运行 out

# ./out
zhangsan
123456
[email protected]

参考:

https://www.cnblogs.com/diegodu/p/4712965.html

https://blog.csdn.net/sdsabc2000/article/details/50866735/

https://blog.csdn.net/tl070602023/article/details/82463838?utm_source=blogxgwz2

https://www.cnblogs.com/zhangkele/p/10280190.html

https://www.cnblogs.com/orangeform/archive/2013/01/04/2842533.html

你可能感兴趣的:(protobuf)