问题:当主机上装了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