Protobuf,gmock,gtest在windows10上的编译与安装

2024-03-15 22:38

本文主要是介绍Protobuf,gmock,gtest在windows10上的编译与安装,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先要说的是,这种编译与安装不是必须的,用户可以自己下载protoc的二进制文件直接使用。因为开发和调试的原因,我经常反复需要编译不同版本的protobuf,例如NCNN用的protobuf3.4.0。因为重复的过程中自己也没有详细记录过,所以这里记录一下备忘。

(I)第一步,下载gmock。

https://codeload.github.com/google/googletest/tar.gz/refs/tags/release-1.11.0https://codeload.github.com/google/googletest/tar.gz/refs/tags/release-1.11.0

编译安装 gmock (现在并入到了gtest)不是必须的,后续protobuf只要求路径正确即可。

不过我这里还是先编译一下,非常简单,用cmake配置后编译即可,如下, 

 注意,在Configure时候,cmake会弹出对话框,此时可以选择win32还是x64,我这里选择的是x64

 (II)第二步,下载编译安装 protobuf-3.4.0。

原来下载编译protobuf的时候,直接把gmock下载到protobuf下面的子文件夹就可以了,可惜的是,gmock现在被google并入到gtest中,所以如果是从上面这个链接下载下来的话,地址可能要变。

我解压后的gmock地址在这里:D:\vsAI\googletest1110\googlemock

我的protobuf目录在这里:D:\vsAI\protobuf340

直接配置的话,会生成错误:cannot find gmock directory.

 解决办法是写入正确的地址。修改文件<D:\vsAI\protobuf340\cmake\tests.cmake> 中的第1,16,25等行。不过这比较麻烦,我的解决办法是直接

(1)把文件夹

D:\vsAI\googletest1110\googlemock

拷贝到

D:\vsAI\protobuf340\gmock

(2)把文件夹

D:\vsAI\googletest1110\googletest

拷贝到

D:\vsAI\protobuf340\gmock\gtest

然后再配置cmake-gui,就一切OK了。最后Open Project,用vs2017编译,一切顺利,如下,

 后话:编译老版本的probobuf,最主要的是设置对googlemock和googletest的路径。

Probobuf3.9.1 + VS2019

当编译protobuf3.9.1时,很简单,直接把googletest解压到thirty_party目录下即可。如下图,

注意事项

我的zlib是自己编译的,所以在用cmake-gui配置时需要填入zconf.h和zlib.h的路径,
D:\vsNCNN\zlib1211\dev\zconf.h
D:\vsNCNN\zlib1211\zlib.h,

cmake-gui的配置如下,

出现的问题

当在path环境变量中设置了其他版本的protoc.exe的路径时,编译很容易出现冲突,比如这样的错误,

https://github.com/tensorflow/tensorflow/issues/29978

protobuf/arena.cc:53:13: error: use of undeclared identifier 'LifecycleId'
std::atomic<LifecycleId> ArenaImpl::lifecycle_id_generator_;

解决办法就是在环境变量中删除这些路径,删除cmake-gui中的cache,重启cmake-gui后再配置编译。 

这篇关于Protobuf,gmock,gtest在windows10上的编译与安装的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/813485

相关文章

从零教你安装pytorch并在pycharm中使用

《从零教你安装pytorch并在pycharm中使用》本文详细介绍了如何使用Anaconda包管理工具创建虚拟环境,并安装CUDA加速平台和PyTorch库,同时在PyCharm中配置和使用PyTor... 目录背景介绍安装Anaconda安装CUDA安装pytorch报错解决——fbgemm.dll连接p

mac安装nvm(node.js)多版本管理实践步骤

《mac安装nvm(node.js)多版本管理实践步骤》:本文主要介绍mac安装nvm(node.js)多版本管理的相关资料,NVM是一个用于管理多个Node.js版本的命令行工具,它允许开发者在... 目录NVM功能简介MAC安装实践一、下载nvm二、安装nvm三、安装node.js总结NVM功能简介N

python安装whl包并解决依赖关系的实现

《python安装whl包并解决依赖关系的实现》本文主要介绍了python安装whl包并解决依赖关系的实现,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录一、什么是whl文件?二、我们为什么需要使用whl文件来安装python库?三、我们应该去哪儿下

MySQL安装时initializing database失败的问题解决

《MySQL安装时initializingdatabase失败的问题解决》本文主要介绍了MySQL安装时initializingdatabase失败的问题解决,文中通过图文介绍的非常详细,对大家的学... 目录问题页面:解决方法:问题页面:解决方法:1.勾选红框中的选项:2.将下图红框中全部改为英

MySQL9.0默认路径安装下重置root密码

《MySQL9.0默认路径安装下重置root密码》本文主要介绍了MySQL9.0默认路径安装下重置root密码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录问题描述环境描述解决方法正常模式下修改密码报错原因问题描述mysqlChina编程采用默认安装路径,

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具