Win下生成Protobuf库文件

Win下生成Protobuf库文件,解决 ZLIB缺失问题,亲测!!

本案例使用Protobuf版本为 3.9.x,此版本的CMakeLists.txt可以正常通过Cmake编译;
(由于最新的Protobuf版本的 CmakeLists.txt 编译过程有许多报错,所以使用了历史版本。)

准备环境

  1. Protobuf源代码 https://github.com/protocolbuffers/protobuf
  2. Cmake工具 https://cmake.org/download/
  3. visaul studio 2022 版本不限,本人使用为2022

便捷

如果没有魔法这提供了已经编译好的库文件连接和Protobuf3.9.x源码;

源码:protobuf-3.9.x.zip
链接:https://pan.baidu.com/s/1UC9zZWG74kStDpAtxnT6Bg?pwd=7mo1
提取码:7mo1

编译后库文件:Release.7z
链接:https://pan.baidu.com/s/1SfzupIIFTtUmkT0RWnPG6g?pwd=elj9
提取码:elj9

开始处理

  1. 将GitHub下载的源码进行解压,在protobuf-3.9.x下创建一个新的文件夹build_dir(用于存放Cmake编译后的文件,文件夹名字自定义即可);
  2. 使用Cmake进行编译;
    • 进行基础的编译选择在这里插入图片描述
    • 进行Configure配置
      在这里插入图片描述

出现报错!!!

在这里插入图片描述
具体报错原因:缺少 ZLIB;
在这里插入图片描述
缺少 ZLIB 解决方式
注意:在生成ZLIB时候,可能会出现报错
在这里插入图片描述
MSB3073 解决方案
本人亲测成功:第一种方法:启动VS以管理员身份运行 + 第二种方法:build目录 放在 Cmakelist.txt 目录外侧;

按照步骤将 ZLIB 安装成功后,删除 build_dir 文件夹中内容,重新启动cmake进行编译;
现在zlib 已经存在了;
在这里插入图片描述
注意:其他版本的可能会出现 tests.cmake 文件缺失,可以将Cmakelist.txt 中 一下代码进行删除

  enable_testing()
  include(tests.cmake)
endif (protobuf_BUILD_TESTS)

在这里插入图片描述
去除后,重新点击 Configure 按钮 再点击 Generate 重新编译

注意:不管是否有报错,最后一步都要点击 Generate!!! 才能生成 .sln 文件

Visaul Studio 操作

在之前创建的 build_dir 文件夹中会有编译产生的文件,双击 protobuf.sln 文件,使用 Visaul Studio 打开;
在这里插入图片描述
将项目配置选为 Release x64;
选择 libprotobuf、libprotoc、protoc 进行 生成选定内容;
在这里插入图片描述
在 build_dir 文件夹中会生成 Release 文件夹,得到结果;
在这里插入图片描述

生成include文件

在build_dir 文件夹下存在extract_includes.bat 脚本,双击执行;生成 include 文件;
在这里插入图片描述

本人并未解决 tests.cmake 报错问题!如有大佬希望指定一二;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值