Computer vision caffe:protobuf版本出错

Computer vision caffe:protobuf版本出错,computer-vision,neural-network,deep-learning,caffe,protocol-buffers,Computer Vision,Neural Network,Deep Learning,Caffe,Protocol Buffers,我以前安装过caffe和Fast RCNN,因此我应该拥有所有必需的库和依赖项 我需要为另一个使用Caffe的存储库()再次安装它 当我跑的时候 make all 它给了我以下错误: CXX .build_release/src/caffe/proto/caffe.pb.cc In file included from .build_release/src/caffe/proto/caffe.pb.cc:5:0: .build_release/src/caffe/proto/caffe.pb.

我以前安装过caffe和Fast RCNN,因此我应该拥有所有必需的库和依赖项

我需要为另一个使用Caffe的存储库()再次安装它

当我跑的时候

make all
它给了我以下错误:

CXX .build_release/src/caffe/proto/caffe.pb.cc
In file included from .build_release/src/caffe/proto/caffe.pb.cc:5:0:
.build_release/src/caffe/proto/caffe.pb.h:12:2: error: #error This file was generated by a newer version of protoc which is
#error This file was generated by a newer version of protoc which is
^
.build_release/src/caffe/proto/caffe.pb.h:13:2: error: #error incompatible with your Protocol Buffer headers. Please update
#error incompatible with your Protocol Buffer headers.  Please update
^
.build_release/src/caffe/proto/caffe.pb.h:14:2: error: #error your headers.
#error your headers.
^
In file included from .build_release/src/caffe/proto/caffe.pb.cc:5:0:
.build_release/src/caffe/proto/caffe.pb.h:26:55: fatal error: google/protobuf/generated_enum_reflection.h: No such file or directory
#include <google/protobuf/generated_enum_reflection.h>

compilation terminated.
make: *** [.build_release/src/caffe/proto/caffe.pb.o] Error 1
返回

libprotoc 2.5.0
看起来protobuf的新版本已经发布(2.6或更高版本)

所以我的问题是:

1) 有没有简单的方法来更新它


2) 如果我确实更新了它,它会影响我以前安装的caffe和fast rcnn吗?这取决于旧版本的protobuf?

我怀疑您的问题是您的包含路径中有多个protobuf版本。它可能从旧版本而不是最新版本中获取标题。我可以确认最新的caffe(目前的git master)可以针对ubuntu 14.04LTS中的libprotobuf-dev-2.5.0-9ubuntu1进行干净的编译。

我在我的计算机上解决了这个问题,也许它可以帮助你。我的环境是Ubuntu16.04,在安装Caffe之前,我安装了Anaconda(用于python2.7)。碰巧我使用conda安装libprotobuf dev,这导致了与caffe的“sudo apt get install libprotobuf dev”命令的冲突,因为“apt get”和conda安装在我的计算机上不同,可以通过“locate protobuf”找到,所以我删除了Anaconda版本的libprotobuf,不再出现问题

conda uninstall libprotobuf

当您在安装Caffe之前安装tensorflow时,这个问题也会发生,因为libprotobuf冲突。

我想在出现这个问题之前,您已经使用
protoc
生成了Caffe.pb.h`。如果你这样做了,我的解决方案可能对你有用

首先,您应该知道在您的操作系统中安装了多少
protoc

例如,在我的操作系统中:

Prompt> whereis protoc
protoc: /usr/bin/protoc /home/xxx/.conda/envs/python27/bin/protoc/usr/share/man/man1/protoc.1.gz
因此,在我的操作系统中有2个
protoc
。您可以使用
which protoc
protoc--version
来查找默认使用的版本
protoc
。在我的操作系统中:

Prompt> which protoc
/home/xxx/.conda/envs/python27/bin/protoc

Prompt>protoc --version
libprotoc 3.5.1
最后,再次使用另一个
protoc
创建
caffe.pb.h
。 让dir指向
caffe/src/caffe/proto
,并执行:

/usr/bin/protoc --cpp_out=. caffe.proto
我用计算机解决这个问题

conda uninstall libprotobuf
然后删除caffe文件夹并下载一个新文件夹

git clone https://github.com/BVLC/caffe.git
那就做吧

make all -j8
make all -j8