caffe编译关于protobuf错误的解决办法

问题:当主机上装了Tensorflow和Anaconda时,再去编译caffe就会遇到关于protobuf的错误。

原因:系统使用的protoc是anaconda下的,一般版本是3.6(通过后面命令查看: protoc --version && which protoc), 而编译caffe需要的protoc版本需要2.6或者3.3。

解决办法:

1. sudo gedit ~/.bashrc; 注释掉path=anaconda那行

2. source ~/.bashrc; 这时候protoc的版本和位置应该就不是anaconda下的了,应该是/usr/bin/protoc

3. make clean && make all

如果不行,就只有卸载掉anaconda下的protoc了:

1.conda uninstall libprotobuf

2.sudo apt-get install libprotobuf-dev protobuf-compiler

protoc问题弄好后,如果遇到caffe/protoc/caffe.pb.h: no such file or directory

解决办法:

1. protoc src/caffe/protoc/caffe.proto --cpp_out=.

2. sudo mkdir include/caffe/proto

3. sudo mv src/caffe/proto/caffe.pb.h include/caffe/proto

如果遇到anaconda关于libpng16.so.16:对’inflateValidate@ZLIB_1,2,9‘未定义引用

解决办法:在Makefile.config中加入下一句: LINKFLAGS:=-WL,-rpath,$(HOME)/anaconda/lib

 

你可能感兴趣的:(caffe编译关于protobuf错误的解决办法)