protobuff的安装和使用

0.环境

       window10,C++

1.准备

1.1 下载protobuffhttps://github.com/protocolbuffers/protobuf/releases , 我下载的是3.10

1.2 安装cmake: https://cmake.org/download/

1.3 cmake我下载的是目前最新的3.16,编译生成的protobuff,发现加进项目时报错: 未发现<google/protobuf/port_def.inc>,浪费了很多时间找问题,最终下了3.14版本没有出现该问题。 

2.编译protobuff

2.1 解压protobuff

2.2 Browse Source选择protobuff的cmake目录

2.3 Browse Build选择存放路径

2.4 点击左下角的 "Configure" 进行相应的配置

2.5 点击"Generate",生成项目

2.6 点击"Open Project",打开项目编译,主要编译2个项目即可:libprotobuf, protoc

 

2.7 生成libprotobfd.lib和protoc.exe

3.测试验证

3.1 新建一个myprotobuff.proto的文本文件

syntax = "proto3";

package tutorial;    //包名,命名空间





message Person {

  int32 id = 1;

  string name = 2;

  string email = 3;

}

 

3.2 编译,生成c++的头文件和源文件

protoc myprotobuff.proto --cpp_out=.

syntax:proto协议,默认使用的是2

--cpp_out:生成位置

3.3 项目中使用

3.3.1 包含目录

3.3.2 添加库

3.3.3 把头文件,源文件加载进项目

3.3.4 代码

#include "stdafx.h"

#include "myprotobuff.pb.h"

int main()

{

    GOOGLE_PROTOBUF_VERIFY_VERSION;

    tutorial::Person person;

    person.set_id(123456);

    person.set_name("Mark");

    person.set_email("[email protected]");

    std::string out = person.SerializeAsString();

    std::string data;

    person.SerializeToString(&data);

    std::cout << "string : " << out <<", data : " << data << std::endl;

    tutorial::Person p;

    p.ParseFromString(out);

    std::cout << "id = " << p.id() << ", name = " << p.name() << ", email : " <<  p.email() << std::endl;

    return 0;

}

3.3.5 结果

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章