发生这个问题的原因是:
1.当前编译的caffe/include/caffe/proto路径下的caffe.pb.h文件(该文件可以用以下指令生成:protoc --cpp_out=. caffe.proto,caffe.proto文件在caffe/src/caffe/proto路径下。假设此时的protoc版本是A);
2.编译时默认环境protoc版本或者Makefile.config中指定的protoc版本为B;
如果A与B版本不一致时,就会产生上述冲突。
解决方法可参考下边博客。
我造成此错误的原因是我在Makefile.config中指定了anaconda路径。
ANACONDA_HOME := /anaconda3/envs/py2.7_proc3.5
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python2.7 \
$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \
编译caffe时自动找到了/anaconda3/envs/py2.7_proc3.5文件夹下的protoc(B),具体为什么找到这个protoc暂不解决。