vs2019 中编译和使用 protobuf 库

这篇具有很好参考价值的文章主要介绍了vs2019 中编译和使用 protobuf 库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

protobuf 是一种跨平台的序列化结构数据的方法,可用于网络数据传输及存储。

本文对使用 vs2019 编译 protobuf 库文件进行说明,相关代码及安装文件均来自官网下载。

VS2019 编译 protobuf

①.生成 sln 工程文件

打开 cmake ,然后选择 protobuf-v3.19.4 目录中的 cmake 文件夹

vs2019 中编译和使用 protobuf 库

单击 configure 按钮,在打开界面中配置 生成器及平台

vs2019 中编译和使用 protobuf 库

取消 protobuf_BUILD_TESTS 选项,若要生成动态库需要选择 protobuf_BUILD_SHARED_LIBS

vs2019 中编译和使用 protobuf 库

单击 Generate 按钮生成 sln 工程目录

vs2019 中编译和使用 protobuf 库

②.编译 sln 工程

用 VS2019 打开生成的 sln 项目文件
vs2019 中编译和使用 protobuf 库

右键解决方案分别生成 Debug 和 Release 版的库文件

vs2019 中编译和使用 protobuf 库

③.整理生成的结果

新建 bin 文件夹,把生成的 libprotobuf.dll、libprotobuf-lite.dll、libprotoc.dll 三个动态库文件放入文件夹

vs2019 中编译和使用 protobuf 库

新建 lib 文件夹,把生成的 libprotobuf.lib、libprotobuf-lite.lib、libprotoc.lib三个库文件放入文件夹

vs2019 中编译和使用 protobuf 库

新建 include 文件夹,把 protobuf-v3.19.4 目录中的 src\google 文件夹拷贝放入

vs2019 中编译和使用 protobuf 库

新建 tools 文件夹,把 protoc.exe、libprotobuf.dll、libprotoc.dll 三个文件放入,用于编译生成 c++ 文件

vs2019 中编译和使用 protobuf 库

最终生成的完整目录如下,在使用时把 protobuf-x86 放在对应的工程路径下即可

vs2019 中编译和使用 protobuf 库

VS2019 使用 protobuf

①.项目属性配置

在附加包含目录中配置 include 路径

vs2019 中编译和使用 protobuf 库

在附加库目录中配置 lib 路径

vs2019 中编译和使用 protobuf 库

在附加依赖项中配置 libprotobufd.lib

vs2019 中编译和使用 protobuf 库

②.编写测试用的 .proto 文件

syntax = "proto3";
package protoTest;

message DemoMsg
{
  string name = 1;
  int32 id = 2;
}

③.生成对应的 C++ 文件

为方便使用可在同目录编写一个 generate.bat 文件

cd /d %~dp0
..\protobuf-x86\tools\protoc.exe *.proto --cpp_out=.
pause

双击运行即可生成 .h 和 .cc 文件

vs2019 中编译和使用 protobuf 库

把生成的文件添加到项目中,并且在生成的 .h 文件最开头添加 #define PROTOBUF_USE_DLLS,否则编译会出错

vs2019 中编译和使用 protobuf 库

④.测试代码

#include <iostream>
#include "proto/protoDemo.pb.h"
int main()
{
    protoTest::DemoMsg msg;
    msg.set_id(1);
    msg.set_name("hello");

    std::cout << msg.SerializePartialAsString() << std::endl;
}

vs2019 中编译和使用 protobuf 库文章来源地址https://www.toymoban.com/news/detail-478595.html

到了这里,关于vs2019 中编译和使用 protobuf 库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VS2019远程编译arm程序

    目录 第一步、远程连接arm 第二步、选择编译器 第三步、选择好后配置JSON文件 第四步、进行Cmake远程编译 第五步、开始编译 打开vs2019 选择 【工具】--【选项】--【跨平台】连接远程arm 添加linux -GCC编译器 以上完成后就可以按照一般的方式对cmake跨平台的代码在远程arm上进行

    2024年02月08日
    浏览(48)
  • Matlab2022a无法识别vs2019编译器,未检测到支持的编译器,错误使用Mex -setup error cannot find support compiler

    1、确定一下您的问题:错误使用Mex 2、再执行以下命令: 如果您的结果跟我一样,那么可以继续看,如果不一样,就可能不是同一个问题。 下面直接说解决方案: 3、打开powershell,执行下面命令 install-module -scope currentuser MSI 按照提示输入Y 4、继续执行命令 get-msirelatedproduct

    2024年02月06日
    浏览(80)
  • VS2019编译UE4 4.27.2时出现编译报错

    完整的报错: 1.内部编译器错误。 UE4 D:UE4UnrealEngine-4.27.2-releaseEnginePluginsVirtualProductionRemoteControlSourceRemoteControlPrivateRemoteControlPreset.cpp 1870 2.严重性    代码    说明    项目    文件    行    禁止显示状态 错误    MSB3073    命令“....BuildBatchFilesRebuild.bat

    2024年02月14日
    浏览(46)
  • Colmap编译教程及笔记 [Windows+VS2019+Vcpkg]

    Windows系统下COLMAP的编译可以分为三部分:(1)手动下载安装Boost、Qt、CGAL、CUDA(Boost和CGAL也可以用vcpkg安装);(2)利用vcpkg安装glew、freeimage、ceres等库(3)最后在colmap源代码目录下的build文件夹打开cmd,输入cmake命令生成解决方案 CMake、Git、Visual Studio 2019、Vcpkg等提前安装

    2023年04月08日
    浏览(114)
  • Openssl数据安全传输平台003:Protobuf-3.17.2的编译-Windows:cmake+VS2022/ Centos7/8: make

    https://github.com/Chufeng-Jiang/OpenSSL_Secure_Data_Transmission_Platform/tree/main/Protobuf 0.2.1 Centos7 https://www.bilibili.com/video/BV1we411R7sS/?vd_source=3353f83539e46042d8cf76efb177a8e4 06-Protobuf在Centos7系统上的安装:版本protobuf3.17.2 0.2.2 windows https://www.bilibili.com/video/BV1rw411X7mY/?spm_id_from=333.999.0.0vd_source=3353f8353

    2024年02月06日
    浏览(63)
  • VS2019编译生成动态链接库dll的两种方式

     dll项目的默认结构如下:  四个文件的内容因为是默认生成的,不是特别重要, 接下来就是重要的修改部分: 方法一: 修改“pch.h”和“dllmain.cpp”文件,可以参考以下博主链接,但博主的引用部分有些繁琐,文末会介绍我的引用方法,和正常引用外部库步骤是一样的。这

    2023年04月09日
    浏览(49)
  • Openssl数据安全传输平台003:Protobuf-3.17.2的编译与部署:Windows:cmake+VS2022/ Centos7/8: make

    https://github.com/Chufeng-Jiang/OpenSSL_Secure_Data_Transmission_Platform/tree/main/Protobuf 0.2.1 Centos7 https://www.bilibili.com/video/BV1we411R7sS/?vd_source=3353f83539e46042d8cf76efb177a8e4 06-Protobuf在Centos7系统上的安装:版本protobuf3.17.2 0.2.2 windows https://www.bilibili.com/video/BV1rw411X7mY/?spm_id_from=333.999.0.0vd_source=3353f8353

    2024年02月07日
    浏览(49)
  • opencv4.7.0 win10 源码编译 vs2019 cmake

    步骤: ① 编译opencv源码;注意几个下载内容;根据cmakedownloadlog.txt中的说明 ② 生成opencv.sln,先使用ALL_BUILD生成 ③ 然后对install工程进行生成 ④ 使用:离线使用,opencv文件夹 install的include lib bin 等复制到当前工程下的文件夹;然后配置属性     配置属性时注意一下路径,工

    2024年02月04日
    浏览(68)
  • VS2019编译OSG3.7.0+OSGEarth3.3+OSGQt

    网上搜索发现关于这几个库编译过程的文章甚至要订阅才能看,在此做个详细记录。 这里使用的 cmake-3.18.3 、 VS2019 和 Qt5.15.2 进行编译。 下载不多赘述,在github上下master版本就是3.7.0版本。 另外还需要 3rdParty_VS2017_v141_x64_V11_full 和 OpenSceneGraph-Data-3.4.0 可以在OSG英文官网中下载

    2023年04月08日
    浏览(50)
  • 解决MATLAB2020B关于找不到vs2019C++编译器问题

    在配置 matlab 深度学习环境过程中,出现找不到 vs219C++编译器 问题,尝试了各种办法,还是失败,经过摸索和结合他人经验,最终成功,予以总结,供需要的朋友们参考 配置: matlab2020b、vs2019 ,其他版本方法类似 1.matlab中运行mex-setup  出现问题,叫我安装MinGW-w64,但由于后

    2024年02月16日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包