#error-- unsupported GNU version! gcc versions later than 4.9 are not supported! 改为 //#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
(6)编译caffe
make -j4 #-j根据自己电脑配置决定
编译过程中可能会出现如下错误:
错误内容1:
"fatal error: hdf5.h: 没有那个文件或目录"
解决办法:
step1:在Makefile.config文件的第85行,添加/usr/include/hdf5/serial/ 到 INCLUDE_DIRS,也就是把下面第一行代码改为第二行代码。
将:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
替换为:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
stept2:在Makefile文件的第173行,把 hdf5_hl 和hdf5修改为hdf5_serial_hl 和 hdf5_serial,也就是把下面第一行代码改为第二行代码。
将:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改为:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
错误内容2:
"libcudnn.so.5 cannot open shared object file: No such file or directory"
解决办法是将一些文件复制到/usr/local/lib文件夹下:
#注意自己CUDA的版本号!
sudo cp /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/lib/libcudart.so.8.0 && sudo ldconfig sudo cp /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/lib/libcublas.so.8.0 && sudo ldconfig sudo cp /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/lib/libcurand.so.8.0 && sudo ldconfig sudo cp /usr/local/cuda-8.0/lib64/libcudnn.so.5 /usr/local/lib/libcudnn.so.5 && sudo ldconfig
make test -j4
make runtest
若runtest报错,则尝试在~/.bashrc文件末尾添加输入一行export MKL_CBWR=AUTO,即:
sudo gedit ~/.bashrc
export MKL_CBWR=AUTO #打开的文件末尾加入该行,然后保存退出。
sudo ldconfig #编译立即生效
再编译:
make clean
make -j4
make test -j4
make runtest
(7)编译pycaffe
a)准备Python环境
sudo apt-get update
sudo apt-get install python-pip python-dev python-numpy
sudo apt-get install gfortran
sudo pip install -r ${CAFFE_ROOT}/python/requirements.txt #${CAFFE_ROOT}为caffe根路径
sudo pip install pydot
b)Anaconda需要将caffe头文件进行链接(不是Anaconda,则直接编译:make pycaffe):
sudo gedit ~/.bashrc
export PYTHONPATH="/home/jeson/caffe/python:$PYTHONPATH"
保存后:
sudo ldconfig
make pycaffe
make distribute
ipython
import caffe
(8)编译matcaffe(gcc可以不用降级,我降级后caffe一直编译不通过,后面才发现不降级也可以用)
将matlab下的libstdc++.so.6 更改名称为libstd++.so.6_back(让matlab找不到这个),这样在执行matlab编译的时候会自动去找系统用的库。具体为:
cd /usr/local/MATLAB/R2014a/sys/os/glnxa64/
sudo mv libstdc++.so.6 libstdc++.so.6_back
sudo ldconfig
cd ~/caffe/
make matcaffe (会有警告gcc版本不支持,可忽略,后面会提示Mex成功)
make mattest
若编译成功,但在调用matcaffe接口时报错,如:
"libcudart.so.8.0 cannot open shared object file: No such file or directory"
则,可用ldd命令查看caffe_.mexa64所依赖的所有库文件路径,在终端中执行:
ldd external/caffe/matlab/caffe_faster_rcnn/+caffe/caffe_.mexa64
在Matlab命令窗口中执行:
!ldd external/caffe/matlab/caffe_faster_rcnn/+caffe/caffe_.mexa64
对比两者的结果,找出所依赖库文件路径不一致的地方,进行修改。
可将这些文件链接或复制到Matlab路径下(/usr/local/MATLAB/R2016b/bin/glnxa64/)或系统路径/usr/local/lib(Matlab中相应的文件应删除或重命名)。
我解决的方案是链接到Matlab路径下:
sudo ln -sf /usr/local/cuda-8.0/lib64/libcudart.so.8.0 /usr/local/MATLAB/R2016b/bin/glnxa64/libcudart.so.8.0
sudo ln -sf /usr/local/cuda-8.0/lib64/libcublas.so.8.0 /usr/local/MATLAB/R2016b/bin/glnxa64/libcublas.so.8.0
sudo ln -sf /usr/local/cuda-8.0/lib64/libcurand.so.8.0 /usr/local/MATLAB/R2016b/bin/glnxa64/libcurand.so.8.0
至此,caffe配置和编译结束。
Ubuntu 14.04下安装Matlab2013a
Ubuntu 16.04 LTS 安装 MATLAB 2014b
Linux Matlab服务器进一步改造成Application Server(应用程序服务器)
Ubuntu 16.04 安装配置MATLAB+Python +CUDA8.0+cuDNN+OpenCV3.1的Caffe环境
Ubuntu 15.04 下Caffe + + CUDA 7.0 安装配置指南
Ubuntu 16.04下Matlab2014a+Anaconda2+OpenCV3.1+Caffe安装
Ubuntu 16.04系统下CUDA7.5配置Caffe教程
Caffe + Ubuntu 14.04 64bit + CUDA 6.5 配置说明
Caffe配置简明教程 ( Ubuntu 14.04 / CUDA 7.5 / cuDNN 5.1 / OpenCV 3.1 )