哪种protobuf版本与caffe一起使用



我正在尝试在Ubuntu 16.04上安装Caffe。由于我想将其与OpenPose一起使用,我不想使用Anaconda来安装Caffe。在安装了很多Caffe依赖项之后(遵循多个在线教程(,我发现protobuf是使用python安装的:

$pip-show protobuf
名称:protobuf
版本:3.6.1
摘要:协议
缓冲区主页:https://developers.google.com/protocol-buffers/
作者:无作者电子邮件:无许可证:3条款BSD许可证
位置:/home/userq/.local/lib/python2.7/site-packages
需要:setuptools,six
要求:

我从过去的经验中知道,使用apt-get-install-libprotobuf-dev-protobuf编译器安装的protobuf版本早于3.6.1,所以我下载了protobuf 3.6.1二进制文件,并将它们放在/usr/bin和/usr/include中。现在我有:

$protoc——版本
libprotoc 3.6.1

但当我试图构建Caffe时,它失败了:

CXX.build_release/src/caffe/proto/caffe.pb.cc在.build_release/src/caffe/proo/caffe.pb.cc:4:0:.build_release/src/caffe/proto/caffe.pb.h:12:2:error:#error此文件由#error的新版本的协议生成^.build_release/src/caffe/proo/caffe.pb.h:13:2:error:#error与您的协议缓冲区标头不兼容。请更新#错误与协议缓冲区标头不兼容。请更新^.build_release/src/caffe/proto/caffe.pb.h:14:2:error:#error您的头。#错误的标题。^在.build_release/src/caffe/proo/caffe.pb.cc:4:0:.build_release/src/caffe/proto/caffe.pb.h:23:35:致命错误:google/protobuf/arena.h:没有这样的文件或目录编译终止。Makefile:598:目标'.build_release/src/caffe/proto/caffe.pb.o'的配方失败make:***[.build_release/src/caffe/proto/caffe.pb.o]错误1

当我打开文件.build_release/src/caffe/proto/caffe.pb.h时,我发现protobuf版本早于3.6.1时会生成这样的错误消息。以下是这个文件的摘录:

#if GOOGLE_PROTOBUF_VERSION < 3006001
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 3006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

我认为在这种情况下不存在版本冲突。虽然我有3.6.1版本,但系统似乎没有检测到它。可能是什么问题?

我也有同样的问题,但我认为这是因为protoc——3.6版尝试为我安装protoc 3.0,它解决了。

最新更新