Caffe安装中多版本protoc选择问题

https://blog.csdn.net/elysion122/article/details/64523339

作为一个实验室资源特别紧缺,好几个人在服务器上共用一个路径的苦逼研究生,面对大家都需要跑caffe的时候就会非常蛋疼。特别是有些人乱七八糟的装不同版本的protobuf,安装在不同路径下,该如何选取特定的版本进行caffe编译呢?
我是linux零基础+caffe零基础,查了好多资料,勉强拼凑出来了如何选择protobuf版本的解决办法。

例如我们的服务器上有两个版本的protobuf,版本3.1.0安装在usr/local/bin下,版本3.0.0安装在$HOME/anaconda2/bin下,
在terminal中运行

sudo protoc --version
sudo which protoc

会显示当前版本是3.1.0,路径指向的是usr/local/bin

protoc --version
which ptotoc

就会显示版本是3.0.0,路径指向$HOME/anaconda2/bin

编译caffe用

sudo make all -j4

就会出现这一个常见的问题

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.
  ^
  ...

这是一个经典问题,所有人都会跟你说重装protobuf吧,比如运行

sudo apt-get install libprotobuf-dev

然而对于一个需要低版本的protobuf的人这句命令行没卵用。


所以,我从《21天实战caffe》中学会了一种安装到“home/name/local_install”中。这样,在一台机器上安装caffe之后迁移到另外一台机器上无需重新编译安装。

首先,下载“protobuf-2.5.0.tar.gz”
然后解压

cd protobuf-2.5.0
./configure --prefix=/home/kuo/local_install/    #修改默认安装位置
make
make install 

这样就安装到“home/name/local_install”了。
为了能在命令行中运行我们将该目录安装在path中

 export PATH=~/local_install/bin/:$PATH

同时,也可以将其写入“~/.bashrc”中,以实现建立会话时自动匹配环境

然后在caffe文件的“Makefile.config”中设置本地环境
在INCLUDE_DIRS 后边加上~/local_install/include
在LIBRARY_DIRS 后边加上 ~/local_install/bin

然后在caffe目录中

make clean
mkdir build 
cd build
cmake ..
make all -j8

猜你喜欢

转载自blog.csdn.net/weixin_37251044/article/details/79817773
今日推荐