当前位置: 首页 > news >正文

Windows Cmake Vs2017/2010 编译安装Protobuf

1.环境准备

  • 安装cmake
  • 安装visuao studio 2017
  • 下载protobuf
  • cmake … -DCEF_USE_SANDBOX=OFF -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=14

1.1安装cmake

下载cmake安装包cmake:https://cmake.org/
也可以使用免安装版本

1.1.1linux下源码编译安装cmake

在这里插入图片描述

1.3下载安装protobuf

网址链接:https://github.com/protocolbuffers/protobuf/releases

可以选择对应的版本进行下载
在这里插入图片描述
我这里选择3.10版本进行下载
在这里插入图片描述下载完成以后对其解压
在这里插入图片描述
打开cmake 进行编译构建

新建文件夹为当前编译路径build_vs2017
指定cmka路径
在这里插入图片描述
选择配置 (这个是32位的)
在这里插入图片描述
这个是64位的
在这里插入图片描述

点击【Finsh】进行配置
CMAKE_CONFIGURATION_TYPES: 指定生成的项目配置类型(如 Debug、Release 等)
CMAKE_INSTALL_PREFIX: 设置库的安装路径。它指定了在 install 时库文件将被安装到哪个目录
protobuf_BUILD_PROTOC_BINARIES: 控制是否构建 protoc 编译器的。protoc 用来将 .proto 文件编译成对应的语言代码
protobuf_BUILD_SHARED_LIBS: 制是否编译为动态库或共享库。如果设置为 ON,Protobuf 将被编译为共享库;如果设置为 OFF,Protobuf 将被编译为静态库
protobuf_WITH_ZLIB: 控制是否编译安装 zlib 库。Zlib 是一个用 C 语言编写的压缩库,Protobuf 在一些情况下可能会用到它 需要勾选
protobuf_MSVC_STATIC_RUNTIME 以静态库的方式进行连接
在这里插入图片描述
最后,点击 Generate,生成 Visual Studio 项目。
在这里插入图片描述
打开工程 开始编译
在这里插入图片描述
会在对应的安装目录下可以查看到
在这里插入图片描述

VS2010 编译protobuf

下载源码 这里以3.3.0举例

问题报错
在这里插入图片描述
这个错误是因为你在用 CMake GUI 编译 Protobuf 时启用了测试选项(默认可能是开着的),它在构建时会尝试加载 Google Test 和 Google Mock,但源码中没有包含对应目录,导致找不到 gmock,报错如下:

CMake Error at tests.cmake:2 (message):Cannot find gmock directory.

正确解决方法:关闭测试选项
🔧 在 CMake GUI 中操作如下:
打开 CMake GUI,设置好:

Where is the source code: E:/MyProtobuf/protobuf-3.3.0
Where to build the binaries: E:/MyProtobuf/protobuf-3.3.0/build_vs2010
点击 "Configure"(第一次配置)
找到 protobuf_BUILD_TESTS,将其取消勾选(设为 OFF)
点击 "Generate"
然后你就可以在 build_vs2010 文件夹中打开生成的 protobuf.sln 并编译了

在这里插入图片描述
直接install
在这里插入图片描述

http://www.dtcms.com/a/292314.html

相关文章:

  • 【计算机网络】第五章:传输层
  • 双向链表详解及实现
  • 解锁高品质音频体验:探索音频质量评估与测试的科学之道
  • Vibe Coding:人工智能 + 语音 = 新型开发者工作流
  • Thingsboard是什么?跟LoRaWAN 是什么关系?
  • 图像基础:从像素到 OpenCV 的入门指南
  • 【加解密与C】Rot系列(四)RotSpecial
  • 【windows修复】解决windows10,没有【相机] 功能问题
  • 2025易支付插件/度小满/拉卡拉缴费易/嘉联/海科码钱/富友 支付量身定制的易支付插件优化方案
  • Jupyter Notebook |使用清华源下载安装
  • Final_基于时序数据的回归预测
  • ABP VNext + FluentMigrator:数据库迁移管理
  • AI智能体“上下文工程”实践:来自 Manus 项目的经验总结
  • 【ArcGIS Pro】设置临时存储文件夹(计算缓存数据存放位置)
  • RedisJSON 指令精讲JSON.STRLEN 高效统计字符串长度
  • OpenMVG OpenMVS 安装全流程常见问题与解决方法总结
  • almalinux9.6系统-基础环境准备
  • 【大气反演模型CIF第二期】通过 Docker 容器快速部署和运行 CIF 系统
  • 基于eBPF的Kubernetes网络故障自愈系统设计与实现
  • 33、基于JDK17的GC调优策略
  • Hyper-V虚拟化平台GPU分区和GPU半虚拟化技术比较及应用建议
  • Linux文件系统深入理解
  • repmgr+vip实现对业务透明的高可用切换
  • 数据库—修改某字段默认值
  • Oracle RAC+ADG switchover 切换演练流程
  • TDSQL
  • [08006][1033] ORA-01033: ORACLE 正在初始化或关闭--问题修复
  • 达梦数据库表字段增加时报错[-2106]:无效的表或视图名,[-2116]:列[IS_REPEAT]已存在
  • Python趣味算法:折半查找(二分查找)算法终极指南——原理、实现与优化
  • 人工智能——OpenCv基础