您当前的位置: 首页 >  windows
  • 0浏览

    0关注

    483博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

高精度计算机视觉 发布时间:2022-01-11 14:44:28 ,浏览量:0

首先要说的是,这种编译与安装不是必须的,用户可以自己下载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.

 解决办法是写入正确的地址。修改文件 中的第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 ArenaImpl::lifecycle_id_generator_;

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

关注
打赏
1661664439
查看更多评论
立即登录/注册

微信扫码登录

0.0448s