ubuntu16.04安装caffe时,使用Anaconda带的库进行make.将 Makefile.config 里面的设置修改为:(注意anaconda后面的数字与本机的相符)
ANACONDA_HOME := $(HOME)/anaconda2
PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
$(ANACONDA_HOME)/include/python2.7 \
$(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \
PYTHON_LIB := $(ANACONDA_HOME)/lib
然后make过程中遇到以下错误:
CXX/LD -o .build_release/test/test_all.testbin src/caffe/test/test_caffe_main.cpp
/usr/bin/ld: warning: libjpeg.so.9, needed by /home/w/anaconda2/lib/libopencv_imgcodecs.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libpng16.so.16, needed by /home/w/anaconda2/lib/libopencv_imgcodecs.so, not found (try using -rpath or -rpath-link)
/home/w/anaconda2/lib/libopencv_imgcodecs.so:对‘png_create_read_struct@PNG16_0’未定义的引用
/home/w/anaconda2/lib/libopencv_imgcodecs.so:对‘png_set_interlace_handling@PNG16_0’未定义的引用
/home/w/anaconda2/lib/libopencv_imgcodecs.so:对‘jpeg_finish_decompress@LIBJPEG_9.0’未定义的引用
/home/w/anaconda2/lib/libopencv_imgcodecs.so:对‘jpeg_set_quality@LIBJPEG_9.0’未定义的引用
/home/w/anaconda2/lib/libopencv_imgcodecs.so:对‘png_set_IHDR@PNG16_0’未定义的引用
.
.
.
发现是找不到libpng16.so.16与libjpeg.so.9文件.打开anaconda中的…anaconda2/lib路径,发现anaconda下有libpng16.so.16与libjpeg.so.9,于是进行如下操作:
cd /usr/lib/x86_64-linux-gnu
sudo ln -s ~/anaconda2/lib/libpng16.so.16 /usr/lib/
sudo ln -s ~/anaconda2/lib/libjpeg.so.9 /usr/lib/
sudo ldconfig
为这两个文件在/usr/lib/下建立一个同步的链接.
再次make,问题消失.