QT +VS 框架下protobuf 协议使用过程(巨细无比)

1.下载文件:

a.protocolbuf

b.cmake

a连接:Release Protocol Buffers v3.2.0 · protocolbuffers/protobuf · GitHub

b.连接:Download | CMake

主要流程:a.下载源码-->b.cmake生成vs工程-->c.vs编译(所需lib文件和protoc.exe)-->d.自己的.proto文件生成对应的.h和.cc文件-->e.引入自己的工程使用

安装CMake,具体细节参考CMake的安装(超级详细)_cmake安装_小码1111的博客-CSDN博客

下载好你的Protobuf,并找到以下两个路径:路径1和路径2

1、打开cmake并生成VS文件,依次操作1->2->3

中间会提示选择vs版本的对话框,本操作选择VS2013(前边下载的Protobuf3.2.0)

【注意】一定要勾选,基于QT框架还是尽量用Dll,lib库我试了一下可能会出错,Dll没问题。

2、vs编译(所需lib文件和protoc.exe)

                       

在路径2 的Debug文件下 生成需要的静态库文件和proto.exe。

3、自己的.proto文件生(默认小白不清楚)

在生成的lib库目录下,新建文本文档自定义.proto文件内容

syntax = "proto2";
package mypb;
message helloworld
{
    required int32 id = 1;
    required string str = 2;
    optional int32 opt=3;
}

a.定义完成后,将文本文档的后缀名直接修改为.proto;

b.同样在该目录下新建批处理文件,方法和.proto类似,也是先新建.txt文件,然后写入以下内容:

protoc --cpp_out=./ person.proto

最后修改后缀名为.bat

4、双击build.bat,会发现在当前目录下生成了一个.h+.cc文件。

5、将Debug中的文件分类,建立相应的文件夹(良好习惯):lib库放在lib文件夹,dll库+exe文件+生成的.h+.cc文件放到bin文件夹中,要将Protobuf\protobuf-3.2.0\src路径中的geogle文件放到新建的include文件夹中:

 5、引入自己的工程使用

a、首先在属性中将输出目录修改为

b、其次在C++常规里引入include

c、在连接器的常规里加入lib库

d、还要将刚才生成的生成了一个.h+.cc文件也放入你的工程目录下,并把它以添加现有项的方式到你的程序中。

e、在person.pb.h头文件里加入#define PROTOBUF_USE_DLLS

6、至此protobuf的C++使用解决方案已全部完成,不足之处恳请指正

(连载注明出处)

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
Protobuf,全称为Protocol Buffers,是由Google设计和维护的一种数据序列化协议。它提供了一种结构化的数据存储格式,并允许跨语言传输数据。在软件开发,尤其是涉及到客户端和服务端交互的应用场景下,Protobuf非常受欢迎。以下是关于在Visual Studio(VS使用Protobuf的一些基本介绍和步骤: ### 为什么使用 Protobuf? 1. **简洁明了的数据表示**:Protobuf使用一种轻量级的数据描述语言来定义数据的结构,生成的二进制数据紧凑且易于解析。 2. **高效的性能**:Protobuf序列化的数据比JSON更快,因为它是一种二进制格式而不是文本格式。 3. **跨语言兼容性**:生成的代码可以在多种编程语言使用,包括C++、Python、Java、JavaScript等。 4. **易于更新和扩展**:修改数据模型时,只需编辑定义文件,无需修改实际的序列化代码。 ### 在 Visual Studio 使用 Protobuf #### 步骤 1:安装 Protobufprotoc 工具 - 首先,你需要从 Protobuf 官方网站下载适合你操作系统的安装包。 - 安装完成后,在系统环境变量添加 Protobuf 的 bin 目录路径。 #### 步骤 2:创建 Protobuf 协议缓冲区文件 1. 打开 VS,新建一个 C++ 或者 Java 项目,或者是一个空的解决方案。 2. 创建一个新的 .proto 文件。在文件,你可以定义消息(Message)、枚举(Enum)、服务(Service)等各种元素。 ```proto syntax = "proto3"; package example; message MessageExample { string field1 = 1; int32 field2 = 2; } ``` #### 步骤 3:生成代码 - 在项目目录下打开命令提示符(或终端),导航到包含 .proto 文件的位置。 - 使用 `protoc.exe` 命令加上对应的语言插件参数来生成代码。例如,假设你想为 C++ 生成代码: ``` protoc -I=. --cpp_out=. ``` 如果你是使用 Python 插件: ``` protoc -I=. --python_out=. ``` #### 步骤 4:使用生成的代码 现在,在你的项目包含了生成的代码文件。你可以在 C++ 项目使用普通类一样使用这些类,在 Python 或 Java 等其他语言也是一样,只是语法略有不同。 ### 相关问题: 1. **如何优化 Protobuf 生成的代码大小?** 2. **如何处理 Protobuf 模型更改导致的现有代码冲突?** 3. **如何选择合适的语言插件来与你的项目一起工作?**
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DaSheng Ren

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值