想要实现环境:ubuntu16.04 + CPU +caffe
由于课题需要在自己电脑上面配置了一下caffe,自己电脑只有CPU。现将过程总结了一下,方便以后使用。如有问题,欢迎交流。
1 安装依赖项
1 sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial- dev protobuf-compiler 2 sudo apt-get install --no-install-recommends libboost-all-dev 3
sudo apt-get install libatlas-base-dev
4 sudo apt-get install libopenblas-dev
2 下载Caffe
https://github.com/BVLC/caffe
git clone https://github.com/BVLC/caffe
3 配置编译(切换到caffe根目录)cd caffe
cp Makefile.config.example Makefile.config
gedit Makefile.config(打开Makefile.config文件)
找到# CPU_ONLY := 1 并去掉#号,因为现在只有cpu。最后结果为:
CPU_ONLY := 1
其他默认就可以了。
4 编译
mkdir build && cd build && cmake .. && make -j4
我的编译过程中在make的时候出现下面的错误。
/usr/bin/ld: /usr/local/lib/libgflags.a(gflags.cc.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libgflags.a: 无法添加符号: 错误的值
查了git上面caffe包的issue,才知道出现这个问题是因为我的gflags安装的动态链接库没有设置成fPIC。
5 解决方法
gflags是我之前编译安装的,现在我需要安装caffe的要求重新在源码包中再安装一次。
具体还是,
cd ~
git clone https://github.com/gflags/gflags
cd gflags
mkdir build && cd build
export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1
make && make install
这样就ok了!成功将gflags的动态链接库设置成了fPIC方式。
下面再让我们切换到caffe中进行编译吧。
参考:
http://blog.csdn.net/u010402483/article/details/51506616
https://github.com/BVLC/caffe/issues/2171
https://www.cnblogs.com/cswuyg/p/3830703.html
http://caffe.berkeleyvision.org/install_apt.html