我试图在Ubuntu16.04上安装Caffe。因为我想在OpenPose中使用它,所以我不想使用Anaconda来安装Caffe。在安装了大量Caffe依赖项(以下是多个在线教程)之后,我发现protobuf是使用python安装的:
$pip展示了原型 名称: protobuf 版本: 3.6.1 摘要:议定书 缓冲区主页:https://developers.google.com/protocol-buffers/ 作者:无作者-电子邮件:无许可证:3-条款BSD许可证 地点: /home/userq/.local/lib/python2.7/site-packages 需要: setuptools,6 要求-通过:
我从过去的经验中了解到,使用apt-get安装libprotobuf dev protobuf编译器会安装一个早于3.6.1的原型版本,因此我下载了Protobuf3.6.1二进制文件,并将它们放入/usr/bin和/usr/include中。现在我有:
$ protoc -version libprotoc 3.6.1
但当我试图建造咖啡厅时,它失败了:
CXX . .build_release/src/caffe/proto/caffe.pb.cc:4:0:_/src/caffe/proto/caffe.pb.cc包含在.build_release/src/caffe/proto/caffe.pb.h:12:2:错误中:#文件是由较新版本的protoc生成的,即 #error。/caffe.pb.h:13:2: error:#error与您的协议缓冲区头不兼容。请更新与您的协议缓冲区头不兼容的#错误。请更新^ .build_release/src/caffe/proto/caffe.pb.h:14:2:错误:#错误您的标题。#错误你的标题。在.build_release/src/caffe/proto/caffe.pb.cc:4:0:.build_release/src/caffe/proto/caffe.pb.h:23:35:包含的文件中,致命错误:google/.build_release/src/caffe/proto/caffe.pb.h:23:35:/arena.h:没有终止这样的文件或目录编译。Makefile:598:目标‘..build_ recipe /src/caffe/proto/caffe.pb.o’的配方失败:*..build_recipe/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版本,但系统似乎没有检测到它。有什么问题吗?
发布于 2019-01-13 08:49:44
我也有同样的问题,但我认为这是因为原型-版本3.6试着为我安装Proc3.0,它解决了。
https://stackoverflow.com/questions/53486421
复制相似问题