protobuf vs2015编译

本文详细介绍了如何在Visual Studio 2015环境下编译protobuf,从下载源码到解决cmake、pthread头文件缺失及gmock相关问题,最终成功通过VS编译的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由来:

        一直做c++项目,类的序列化和反序列化一直是一个让人头疼的问题,由于实际操作比较简单枯燥,但c++从语法层面上并不能支持这一行为的自动化,所以看到了protobuf,网上对此评价也很高~~ 毕竟google造的嘛,于是,便进行尝试进行protobuf的编译。

开始

1.下载protobuf源码:

       下载地址:https://github.com/google/protobuf/,各位看官可以自行处理。

2.解压后,按照cmake下的README.md进行处理,这里就只以solution进行示例,命令行自动编译类似:

2.1 先打开vs的命令行工具,按照帮助文件,执行如下命令:

mkdir build & cd build
mkdir solution & cd solution
cmake -G “Visual Studio 14 2015 Win64” -DCMAKE_INSTALL_PREFIX=../../../../install ../..

2.2 注意,直接运行cmake会遇到cmake不存在的问题,于是下载cmake安装即可(注意安装后重启命令行),附:https://cmake.org/ cmake官网

2.3 接着执行上面最后一个命令,仍然有问题(好事多磨嘛~)

        按照提示打开CMakeError.log,看到提示:无法打开包括文件: “pthread.h”,额,好吧,windows下没有pthread库,下载之~ https://sourceware.org/pthreads-win32/#download,我下载的是 pthreads-w32-2-9-1-release(官网下载可能比较慢,可以选择其中的镜像进行下载)
       后面想到当时命令行并没有添加include path的选项,所以即使使用了pthread也不太好配置(后面尝试了多种方式),后面又仔细看了下命令行输出(之前没太注意看命令行输出,只是直接看error文件,额 还是要仔细看看输出的~~),发现cmake终止是由于没有gmock。再看README中写到:

If the gmock directory does not exist, and you do not want to build protobuf unit tests,
you need to add cmake command argument -Dprotobuf_BUILD_TESTS=OFF to disable testing.

       好吧,我不用测试,遂在命令行中加入-Dprotobuf_BUILD_TESTS=OFF。OK,居然过了。

2.4 直接通过vs进行编译,全程无报错~ 搞定

2.5 如果不通过vs编译,可以参照帮助,最后通过nmake进行编译~

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值