visual studio2022配置和使用protobuf

上图证明,我真的测了好多遍,测了好多版本的protobuf,花了很多时间。不过好在最后在vs2022上测通了。

下载protobuf

这里是protobuf下载的地址。

Releases · protocolbuffers/protobuf · GitHub

个人使用的3.21.9这个版本才跑通的。

1、首先解压protobuf-cpp-3.21.9.zip文件,得到protobuf-cpp-3.21.9文件

2、进入protobuf-cpp-3.21.9文件,创建一个visual studio文件夹

下载cmake工具

cmake是一款十分强大的开源跨平台的构建工具,我们需要使用它构建库文件。

大家可以去官网下载,下边是网址:

Download CMake

生成库文件

1、下载完成之后,打开cmake工具

2、where is the source code选择我们刚刚加压的protobuf-cpp-3.21.9文件夹下的cmake文件夹

3、where to build the binaries选择protobuf-cpp-3.21.9文件下创建的visual studio文件夹

4、点击configure配置我们需要生成项目文件,我们选择visual studio 17 2022即可

configure完成之后,选中你需要生成的文件,下边框框是我选中的生成文件,然后再次点击configure,generate就完成了。

观察下边的提示信息,就表示构建完成了。然后进入protobuf-cpp-3.21.9文件下创建的visual studio文件夹,就有生成好的文件了。

然后带点击打开protobuf.sln项目文件

编译时可以选择debug和release,建议每一个都编译一遍,这样就有debug和release两个版本的库了。
我选择的是X64位的debug模式编译,生成的库在visualstudio目录下的Debug文件夹里。选择重新编译。这个过程可能需要几分钟。

到这里,我们的库文件就生成成功了。

这里就是生成的库文件位置。

在当前路径进入cmd,输入protoc --version命令,检测库文件生成成功的效果如下。

添加环境变量

创建一个protoc文件夹,进入protoc文件下创建一个bin和include文件夹

将visualstudio目录下的Debug文件夹下的下边几个库文件拷到bin文件夹下

将protobuf-3.21.9文件夹下的src文件的下的google文件拷贝至include文件下。

设置环境,把新建的bin路径写在新建的路径下。最后点击确定

检测环境变量是否设置成功。

打开终端输入protoc --version

这就表示环境变量配置成功了。

使用protobuf

首先使用visual studio创建一个新的项目文件,打开其项目文件,创建一个msg.proto文件

msg.proto文件中输入以下代码,这里代码语法是protobuf3的语法,感兴趣的人可以去了解下。

在文件目录下按住shift+右键,点击powershell窗口。输入protoc  --cpp_out=. ./msg.proto,然后回车

接下来文件目录会出现新的文件如下

在vs中右键添加现存文件,把刚刚生成的新文件添加进来

visual studio配置

配置项目的包含路径和库文件路径,这里的包含路径和库文件路径,就是我们刚刚创建的include和bin路径。

添加链接库,添加protobuf用到的lib库

配置代码生成的运行库,我们这里用的是多线程调试MDd。

这是引入proto文件生成的头文件点击编译。出现报错

在头文件中添加

#define PROTOBUF_USE_DLLS再次编译文件。

这里就编译完成了,就能正常的使用protobuf了。

编写实例代码

#include <iostream>
#include "msg.pb.h"
int main()
{//std::cout << "Hello World!\n";Msg msg;msg.set_name("CPP programing");msg.set_age(1);std::string msgstr;msg.SerializeToString(&msgstr);std::cout << "serialize str is " << msgstr << std::endl;Msg msg2;msg2.ParseFromString(msgstr);std::cout << "msg2 name is " << msg2.name() << " age is "<< msg2.age() << std::endl;getchar();
}

运行结果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/35838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年5月90篇代码大模型论文最全整理

引言&#xff1a; 本文整理 2024 年 5 月发布的 90 篇代码大模型相关论文&#xff0c;其中包括 17 篇发表在今年 ICLR 的论文。根据论文内容&#xff0c;我们将这些论文整理为了基座模型、代码微调、测试基准、代码 Agent、低资源语言处理、AI 代码安全与分析、人机交互、软件…

Sqlserver双活

要实现Sqlserver双活不是一件简单的事情&#xff0c;什么是双活&#xff0c;就是两边都活着&#xff0c;两边都可以访问&#xff0c;也就是A服务器部署一个sqlserver服务&#xff0c;B服务器部署一个sqlserver服务&#xff0c;两边数据双向同步保持一致&#xff0c;当A数据库服…

EDA 虚拟机 Synopsys Sentaurus TCAD 2018.06-SP2 CentOS7.9

下载地址&#xff08;制作不易&#xff0c;下载使用需付费&#xff0c;不能接受的请勿下载&#xff09;&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1358rH_Ner1TYdc_TgoXrew?pwdyq3p 提取码&#xff1a;yq3p

2024年【G1工业锅炉司炉】考试及G1工业锅炉司炉考试题库

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年G1工业锅炉司炉考试为正在备考G1工业锅炉司炉操作证的学员准备的理论考试专题&#xff0c;每个月更新的G1工业锅炉司炉考试题库祝您顺利通过G1工业锅炉司炉考试。 1、【多选题】TSGG0001-2012《锅炉安全技术监察…

Animate软件基础:更改图层的轮廓颜色

在Animate软件中&#xff0c;图层都有单独的轮廓颜色&#xff0c;并且可以进行自定义设置&#xff0c;用来在显示轮廓状态下标记不同的图层。 更改图层轮廓颜色的过程如下&#xff1a; 1.执行如下操作之一&#xff1a; 双击时间轴中图层的图标&#xff08;即该图层名称左侧的…

vite 创建vue3项目 集成 ESLint、Prettier、Sass等

在网上找了一大堆vue3脚手架的东西&#xff0c;无非就是vite或者vue-cli,在vue2时代&#xff0c;vue-cli用的人挺多的&#xff0c;也很好用&#xff0c;然而vue3大多是和vite搭配搭建的&#xff0c;而且个人感觉vite这个脚手架并没有那么的好用&#xff0c;搭建项目时只能做两个…

《昇思25天学习打卡营第2天 | 昇思MindSpore张量 Tensor》

第二天学习 1.今天学习了张量 Tensor&#xff0c;了解到Tensor是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数&#xff0c;也是一个特殊的数据结构&#xff0c;与数组和矩阵非常相似。是MindSpore网络运算中的基本数据结构。学些了张量和稀疏张量的属性…

Linux|如何查找和删除重复文件

引言 整理您的个人文件夹甚至整个操作系统可能会相当棘手&#xff0c;特别是当您习惯于使用下载管理器从网上下载各种资料时。 在很多情况下&#xff0c;您可能会发现自己不小心下载了重复的mp3、pdf和epub文件&#xff08;以及其他类型的文件&#xff09;&#xff0c;并将它们…

正版软件 | WIFbox:智能化文件管理工具,让效率与隐私并行

在数字化办公日益普及的今天&#xff0c;文件管理成为了提升工作效率的关键。WIFbox 一款智能文件管理工具&#xff0c;利用强大的人工智能技术&#xff0c;帮助您快速对文件进行分类&#xff0c;完成复杂的智能文件分类任务。 智能分类&#xff0c;效率倍增 WIFbox 通过精细化…

2024年Nano编辑器最新使用教程

Nano在大多数Linux发行版中找到&#xff0c;易于使用&#xff0c;其最常用的命令显示在其屏幕底部。 作为编辑配置和其他文件是Linux中的一种普遍的任务&#xff0c;知道如何使用该程序是否可以非常有用。Nano编辑器以及如何使用Nano编辑器在服务器上编辑文件是我们将在本指南中…

linux 下neo4j的安装

一、neo4j简介 Neo4j 是一个高性能的 NoSQL 图形数据库,它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j 也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。 neo4j与jdk版本对应 neo4j的版本需要与jdk版本相适配,否则容易出现安装失…

Centos+Jenkins+Maven+Git 将生成的JAR部署到Jenkins服务器上

背景:前一篇写的是Jenkins和项目应用服务器不在同一个服务器上。但是有的公司可能不会给Jenkins单独弄一个服务器。可能就会出现Jenkins就搭建在某一个应用服务器上。这种情况的参考如下的操作。 1、登录 没有安装的参考下面的安装步骤先安装: Jenkins安装手册 输入账号、…

电脑怎么去除视频水印?电脑视频水印怎么去掉?

电脑怎么去除视频水印&#xff1f;有是我们见到喜欢的视频会保存下来&#xff0c;但是有时候保存的视频上面会带有水印&#xff0c;那么视频水印该如何去除呢&#xff1f;今天小编给大家推荐一个好用的视频去水印软件&#xff0c;操作简单&#xff0c;去水印效果好。 使用&…

2024高考录取分数线一览表(含一本线、二本线、专科线)

2024年全国各地的高考录取分数线已经全部公布&#xff0c;查大学网&#xff08;www.chadaxue.com&#xff09;为大家整理全国31个省市高考录取分数线汇总&#xff0c;包括本科批&#xff08;一本分数线线和二本分数线&#xff09;、专科批和特殊类招生控制分数线汇总&#xff0…

【AI落地应用实战】如何让扫描工具更会思考——智能高清滤镜2.0实战测评

一、引言 在这个信息爆炸的数字化时代&#xff0c;扫描工具已经成为我们日常工作和学习中不可或缺的助手。最近&#xff0c;扫描全能王推出了革命性的“智能高清滤镜2.0”&#xff0c;本次更新后&#xff0c;智能高清滤镜能够智能识别并优化扫描过程中的各种问题。无论是光线不…

Redis优化之持久化

目录 1.Redis高可用 2.Redis持久化 2.1 RDB持久化 2.1.1 触发条件 2.1.2 执行流程 2.1.3 启动时加载 2.2 AOF持久化 2.2.1 开启AOF 2.2.2 执行流程 2.2.3 文件重写触发方式 2.2.4 文件重写的流程 2.2.5 启动时加载 2.3 RDB和AOF的优缺点 3.Redis性能管理 3.1 查看…

SSL证书在网站访问中的核心作用及快速申请指南

在当今的互联网时代&#xff0c;数据安全与用户隐私保护成为了网站运营不可或缺的一部分。SSL证书作为一种重要的网络安全协议&#xff0c;它在网站访问中扮演着至关重要的角色&#xff0c;主要体现在以下几个方面&#xff1a; 一、加密通信内容&#xff1a;SSL证书通过建立安…

2023年第十四届蓝桥杯JavaB组省赛真题及全部解析(上)

目录 前言&#xff1a; 一、试题 A&#xff1a;阶乘求和&#xff08;填空&#xff09; 二、试题 B&#xff1a;幸运数字&#xff08;填空&#xff09; 三、试题 C&#xff1a;数组分割 四、试题 D&#xff1a;矩阵总面积 五、试题 E&#xff1a;蜗牛 六、试题 F&#xff…

SpringMVC处理器映射器HandlerMapping详解

目录 一、前言 二、initHandlerMappings 三、处理器映射器架构 策略接口 请求链 模版类 四、RequestMappingHandlerMapping的初始化 HandlerMethod映射器模版类的初始化 AbstractHandlerMethodMapping.MappingRegistry&#xff1a;内部类注册中心 五、Reques…

电子名片小程序源码系统 前后端分离 带完整的安装代码包以及搭建教程

系统概述 电子名片小程序源码系统是一款基于前后端分离架构的综合性平台&#xff0c;旨在为用户提供一个集销售名片和企业商城于一体的解决方案。该系统采用先进的技术手段&#xff0c;实现了个性化名片设计、便捷的销售功能、企业商城模块等一系列实用功能。同时&#xff0c;…