protobuf使用

news2024/9/25 1:15:25

我下载的是

protobuf-27.4

以下使用vs2022

根据readme,执行如下命令

"C:\Program Files\CMake\bin\cmake.exe" -G "Visual Studio 17 2022"  -DCMAKE_INSTALL_PREFIX=C:\Users\x\Downloads\install  C:\Users\x\Downloads\protobuf-27.4  -Dprotobuf_BUILD_TESTS=OFF

他会报错说absl找不到,需要从网上下载一下absl的源码
abseil-cpp-20240722.0.zip

下载完之后,把压缩包里面的东西全部拖进C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp目录里面

然后重新执行上面那个命令

生成一个sln文件,打开之后,生成libprotobufd.lib文件

这里注意调整生成选项,要和你使用protobuf的项目的选项保持一致

在这里插入图片描述

同时需要把下图中划线的项目生成一下,生成选项也要保持一致
在这里插入图片描述

下面需要对测试项目进行配置

首先就是include目录,如下:

C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp
C:\Users\x\Downloads\protobuf-27.4\src

然后是linkrt选项的input

C:\Users\x\Downloads\protobuf-27.4\Debug\libprotobufd.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\types\Debug\absl_bad_any_cast_impl.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\types\Debug\absl_bad_optional_access.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\types\Debug\absl_bad_variant_access.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\base\Debug\absl_base.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\hash\Debug\absl_city.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\time\Debug\absl_civil_time.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\strings\Debug\absl_cord.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\strings\Debug\absl_cord_internal.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\strings\Debug\absl_cordz_functions.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\strings\Debug\absl_cordz_handle.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\strings\Debug\absl_cordz_info.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\strings\Debug\absl_cordz_sample_token.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\crc\Debug\absl_crc32c.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\crc\Debug\absl_crc_cord_state.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\crc\Debug\absl_crc_cpu_detect.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\crc\Debug\absl_crc_internal.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\debugging\Debug\absl_debugging_internal.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\debugging\Debug\absl_decode_rust_punycode.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\debugging\Debug\absl_demangle_internal.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\debugging\Debug\absl_demangle_rust.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\log\Debug\absl_die_if_null.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\debugging\Debug\absl_examine_stack.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\profiling\Debug\absl_exponential_biased.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\debugging\Debug\absl_failure_signal_handler.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\flags\Debug\absl_flags_commandlineflag.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\flags\Debug\absl_flags_commandlineflag_internal.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\flags\Debug\absl_flags_config.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\flags\Debug\absl_flags_internal.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\flags\Debug\absl_flags_marshalling.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\flags\Debug\absl_flags_parse.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\flags\Debug\absl_flags_private_handle_accessor.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\flags\Debug\absl_flags_program_name.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\flags\Debug\absl_flags_reflection.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\flags\Debug\absl_flags_usage.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\flags\Debug\absl_flags_usage_internal.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\synchronization\Debug\absl_graphcycles_internal.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\hash\Debug\absl_hash.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\container\Debug\absl_hashtablez_sampler.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\numeric\Debug\absl_int128.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\synchronization\Debug\absl_kernel_timeout_internal.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\debugging\Debug\absl_leak_check.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\log\Debug\absl_log_entry.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\log\Debug\absl_log_flags.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\log\Debug\absl_log_globals.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\log\Debug\absl_log_initialize.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\log\Debug\absl_log_internal_check_op.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\log\Debug\absl_log_internal_conditions.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\log\Debug\absl_log_internal_fnmatch.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\log\Debug\absl_log_internal_format.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\log\Debug\absl_log_internal_globals.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\log\Debug\absl_log_internal_log_sink_set.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\log\Debug\absl_log_internal_message.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\log\Debug\absl_log_internal_nullguard.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\log\Debug\absl_log_internal_proto.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\base\Debug\absl_log_severity.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\log\Debug\absl_log_sink.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\hash\Debug\absl_low_level_hash.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\base\Debug\absl_malloc_internal.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\profiling\Debug\absl_periodic_sampler.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\base\Debug\absl_poison.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\random\Debug\absl_random_distributions.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\random\Debug\absl_random_internal_distribution_test_util.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\random\Debug\absl_random_internal_platform.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\random\Debug\absl_random_internal_pool_urbg.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\random\Debug\absl_random_internal_randen.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\random\Debug\absl_random_internal_randen_hwaes.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\random\Debug\absl_random_internal_randen_hwaes_impl.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\random\Debug\absl_random_internal_randen_slow.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\random\Debug\absl_random_internal_seed_material.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\random\Debug\absl_random_seed_gen_exception.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\random\Debug\absl_random_seed_sequences.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\container\Debug\absl_raw_hash_set.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\base\Debug\absl_raw_logging_internal.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\base\Debug\absl_scoped_set_env.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\base\Debug\absl_spinlock_wait.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\debugging\Debug\absl_stacktrace.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\status\Debug\absl_status.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\status\Debug\absl_statusor.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\strings\Debug\absl_str_format_internal.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\base\Debug\absl_strerror.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\strings\Debug\absl_string_view.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\strings\Debug\absl_strings.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\strings\Debug\absl_strings_internal.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\debugging\Debug\absl_symbolize.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\synchronization\Debug\absl_synchronization.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\base\Debug\absl_throw_delegate.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\time\Debug\absl_time.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\time\Debug\absl_time_zone.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\debugging\Debug\absl_utf8_for_code_point.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\abseil-cpp\absl\log\Debug\absl_vlog_config_internal.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\utf8_range\Debug\utf8_range.lib
C:\Users\x\Downloads\protobuf-27.4\third_party\utf8_range\Debug\utf8_validity.lib

这样就可以了

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

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

相关文章

【动态规划】子序列问题(数组中不连续的一段)

子序列问题 1.最长递增子序列2.摆动序列3.最长递增子序列的个数4.最长数对链 点赞👍👍收藏🌟🌟关注💖💖 你的支持是对我最大的鼓励,我们一起努力吧!😃😃 1.最长递增子序列…

Java+Swing学生信息管理系统

JavaSwing学生信息管理系统 一、系统介绍二、功能展示1.管理员登陆2.学生信息查询3.学生信息添加4.学生信息修改5.删除 三、系统实现1.StudentFrame .java 四、其它1.其他系统实现 一、系统介绍 该系统实现了管理员系统登陆、学生信息查询、学生信息添加、学生信息修改、学生信…

【代码随想录训练营第42期 Day55打卡 - 图论Part5 - 并查集的应用

目录 一、并查集 适用范围 三大基本操作 二、经典题目 题目:卡码网 107. 寻找存在的路径 题目链接 题解:并查集 三、小结 一、并查集 适用范围 动态连通性问题:并查集可以判断两个节点是否在同一个连通分量中,这在处理网络…

对耳朵伤害最小的耳机类型,开放式耳机最大程度保护耳道健康

开放式耳机是目前比较流行的耳机种类,其特点是通过采用海绵状的微孔发泡塑料制作透声耳垫,或利用骨传导、气传导等技术传音,不使用厚重的染音垫,没有与外界的隔绝感,佩戴者在享受音乐的同时,也能听到一部分…

WordPress自动备份至群辉NAS

目录 一、配置群辉NAS 1、开启远程管理 2、开启群辉NAS的FTP服务 3、新增网址备份路径 4、新增备份账户 5、设定备份账户能访问的资源 二、插件安装 三、配置插件 四、手工备份 五、自动备份 六、插件中的备份管理 七、数据还原 (本文讲述了WordPress搭建的网址,…

《数字信号处理》学习06-因果系统与稳定系统

目录 一,因果系统 二,稳定系统 之前学习了系统中的线性时不变系统( 系统),接下来学习线性时不变系统( 系统)中的因果系统与稳定系统。(非LTI系统这里暂时不作为学习的要求&#xf…

Java实现自定义线程池

Java实现自定义线程池 ThreadPool public interface ThreadPool {void execute(Runnable runnable);void shutdown();int getInitSize();int getMaxSize();int getCoreSize();int getQueueSize();int getActiveCount();boolean isShutdown(); }RunnableQueue public interfac…

Windows10 Paddlepaddle-GPU CUDA CUDNN 版本选择

最终选择: 在创建的新环境下 python 3.8.* paddlepaddle-gpu 2.5.1.post120 CUDA 12.0 CUDNN 8.9(需配合CUDA的版本) 1. 本机GPU硬件信息 打开NVIDIA Control Panel->System Information->Components,…

深度解析:如何注册并培育亚马逊测评买家号?

在亚马逊这个全球热门的电商平台上,产品评价对于卖家而言至关重要,它直接影响着产品的曝光率、转化率以及消费者的购买意愿。因此,亚马逊测评账号的注册与养号成为了许多卖家关注的焦点。本文将介绍亚马逊测评账号的注册流程以及高效养号的一…

[数据集][目标检测]百事可乐可口可乐瓶子检测数据集VOC+YOLO格式195张2类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):195 标注数量(xml文件个数):195 标注数量(txt文件个数):195 标注类别…

RS485工业通信网关原理详解-天拓四方

一、引言 随着工业自动化技术的飞速发展,工业通信网关作为连接各种设备和系统的关键节点,发挥着越来越重要的作用。RS485工业通信网关作为其中的佼佼者,以其高可靠性、长距离传输能力和抗干扰能力强的特点,在工业自动化、楼宇自控…

经纬恒润高压电池管理系统,助力新能源汽车飞速发展

随着新能源汽车行业的快速发展,电池管理系统作为关键技术之一,其重要性日益凸显。经纬恒润自主研发的高压电池管理系统(Battery Management System,BMS),凭借卓越的性能与先进的技术,在新能源汽…

【区块链通用服务平台及组件】微言科技数据智能中台

人工智能技术中的机器学习、深度学习依赖于海量数据进行模型训练,仅依靠某一机构的数据,无法实现模型、 算法的快速突破。然而数据要素流通涉及多方主体、多个环节,共享环境复杂,同时数据产品具有极易复制、非排他性、难追溯等特征…

为明天做好准备,摆脱传统财务规划的不足

对于企业规划和财务团队来说,自动化工具和创新技术虽说都能够有力支持企业实现数字化转型,进行符合时代发展的战略规划,但同时也伴随着一定的限制。回溯上个世界七十年代,电子表格的问世改变了经济世界的管理模式,带来…

数据智能驱动的工业互联网:能否真正解决企业成本问题?

数据智能驱动的工业互联网:能否真正解决企业成本问题? 前言数据智能驱动的工业互联网 前言 工业互联网作为推动制造业转型升级的关键力量,正逐渐展现出其巨大的潜力和影响力。随着信息技术的不断发展和应用,工业互联网的概念应运…

ctfshow-web入门-sql注入(web241、web242、web243)delete file 注入

目录 1、web241 2、web242 3、web243 1、web241 //删除记录$sql "delete from ctfshow_user where id {$id}"; 这里是 delete 语句,查询出来的东西不会有回显,因此采用盲注。如果采用布尔盲注,我们需要根据页面的回显情况来判…

电影《西施新传》首映礼,九月金秋全国正式公映

2024年9月1日,古装谋略情感影片《西施新传》在无锡大世界影城中山路IMAX激光店举办首映礼。电影《西施新传》根据作家沈雅琴、笔名一蝶的同名小说改编,以家喻户晓四大美人之首的西施为主人公,讲述了春秋末期吴越战争的故事。越国败于吴国&…

Spring Boot 注解探秘:常用配置值读取注解的魔力

在 Spring Boot 应用开发中,我们会常常借助Apollo,Spring Cloud Config等配置中心来集中管理配置信息,在拥有配置信息之后,高效且准确地读取这些配置信息无疑是极为关键的一环。今天我们就来介绍几个常用的用于配置值读取的注解。…

基于云函数的自习室预约微信小程序+LW示例参考

全阶段全种类学习资源,内涵少儿、小学、初中、高中、大学、专升本、考研、四六级、建造师、法考、网赚技巧、毕业设计等,持续更新~ 文章目录 [TOC](文章目录) 1.项目介绍2.项目部署3.项目部分截图4.获取方式 1.项目介绍 技术栈工具:云数据库…

联想 ThinkSystem DM3000H 混合闪存阵列,助力浙江石油化工全面优化私有云数据管理平台

国内石油化工行业领军企业浙江石油化工有限公司(以下简称“浙石化”)成立于 2015 年,是一家民企控股、国企参股的混合所有制企业。由浙石化投资建设的炼化一体化项目是国内最大的一次性绿地投资建设的炼化一体化项目,项目规划总面…