1. 程式人生 > >[填坑]編譯caffe出現的問題及解決方法

[填坑]編譯caffe出現的問題及解決方法

編譯caffe的過程真的是鍊金術,佛系的我在看到100%時還是忍不住流下了小小的眼淚,在此,我想獻上我的綿薄之力,願廣大胖友們可以在編譯路上少受點折磨,加油,我們不能死在搭環境上,我們要看到跑程式的希望

問題一:relocation R_X86_64_32S against `.rodata’ can not be used when making a shared object; recompile with -fPIC

參考 https://github.com/BVLC/caffe/issues/2171

wget https://github.com/schuhschuh/gflags/archive/master.zip
unzip master.zip cd gflags-master mkdir build && cd build export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1 make && make install

問題二 : cudnn_conv_layer.cu: error: argument of type cudnnAddMode_t is incompatible with parameter of type const void

這個是由於cuDNN 版本問題導致在 make 時在 cudnn_conv_layer 報錯

解決方案:更改cudnn版本
具體做請參考:http://blog.csdn.net/l297969586/article/details/67632608

問題三:libcudnn.so.5 is not a symbolic link
該問題主要是連結出現問題,解決方法就是重新連結,參考上個問題的參考部落格

問題四:.build_release/lib/libcaffe.so: undefined reference to cv::imread(cv::String const&, int)’

這和opencv_imgcodecs連結有關

解決方案:修改Makefile檔案,在檔案中新增

LIBRARIES += glog gflags protobuf leveldb snappy \
        lmdb boost_system hdf5_hl hdf5 m \
        opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

問題五:virtual memory exhausted: Cannot allocate memory

解決方案

sudo dd if=/dev/zero of=/swapfile bs=64M count=16
sudo mkswap /swapfile
sudo swapon /swapfile

其他問題傳送門

這段折騰 caffe 的日子……(Ubuntu14.04 + Nvidia Driver + CUDA7.5 + cuDNN v2.0/ v4.0/ v5.1 + caffe)
http://blog.csdn.net/u010167269/article/details/50703948

caffe安裝吐血總結
http://blog.csdn.net/caozhantao/article/details/5147917
http://blog.csdn.net/qq_32768743/article/details/74517046

參考

http://vb2005xu.iteye.com/blog/2171295

http://blog.csdn.net/yhl_leo/article/details/51371936