caffe:protobuf版本出错

ytr*_*ewq 5 protocol-buffers computer-vision neural-network deep-learning caffe

我以前安装了caffe和Fast-RCNN,所以我应该拥有所有必需的库和依赖项.

我需要再次为使用Caffe的另一个存储库(https://github.com/ronghanghu/natural-language-object-retrieval)安装它.

我跑的时候

make all
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误:

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
Run Code Online (Sandbox Code Playgroud)

我想也许protobuf已经更新,并尝试过

protoc --version
Run Code Online (Sandbox Code Playgroud)

返回

libprotoc 2.5.0
Run Code Online (Sandbox Code Playgroud)

似乎已经发布了更新版本的protobuf(2.6或更高版本).

所以我的问题是:

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

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

Ale*_*x I 4

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

  • 如何处理多版本问题? (5认同)