“制作”命令使用哪种协议?

时间:2018-09-26 01:23:34

标签: makefile caffe protoc

我正在尝试构建LAB来生成可靠的面部标志。

在安装指南中说需要安装Caffe必备软件,我已经检查了在我的AWS EC2实例上正确安装的CUDA和BLAS。

然后我git克隆并在LAB中命名的克隆git文件夹下键入make

但是它返回以下错误

CXX .build_release/src/caffe/proto/caffe.pb.cc
In file included from .build_release/src/caffe/proto/caffe.pb.cc:4: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:4:0:
.build_release/src/caffe/proto/caffe.pb.h:23:35: fatal error: google/protobuf/arena.h: No such file or directory
compilation terminated.
Makefile:588: recipe for target '.build_release/src/caffe/proto/caffe.pb.o' failed
make: *** [.build_release/src/caffe/proto/caffe.pb.o] Error 1

上面的错误似乎是我使用的是旧版本的libprotoc,因此如果我输入which protoc,它将返回

/home/ubuntu/anaconda3/bin//protoc

对于protoc --version,它返回libprotoc 3.5.1

对于whereis protoc它返回

protoc: /usr/local/bin/protoc /home/ubuntu/anaconda3/bin/protoc /usr/share/man/man1/protoc.1.gz

因此,由于看起来/usr/local/bin中还有另一个协议,因此我通过/usr/local/bin/protoc --version检查了它的版本,该返回了

libprotoc 3.3.0

我这里有两个问题:

1)我不知道我是否使用make cmd,该协议已被引用。 2)我不知道错误要求使用哪个协议版本。

如何检查并获得有关上述两个问题的正确信息?

1 个答案:

答案 0 :(得分:0)

  1. 尝试类似PROTOC=/home/ubuntu/anaconda3/bin/protoc make
  2. 使用适当的-I选项,确保编译器具有正确的protobuf标头路径。