学习:Ubuntu14.04编译caffe问题记录

来源:互联网 发布:300英雄淘宝金币cdk 编辑:程序博客网 时间:2024/06/06 05:04
问题一:libunwind.so.8: undefined reference
//usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_index_end@XZ_5.0' 
//usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_index_size@XZ_5.0' 
//usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_index_buffer_decode@XZ_5.0' 
//usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_stream_footer_decode@XZ_5.0' 
//usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_stream_buffer_decode@XZ_5.0' 
//usr/lib/x86_64-linux-gnu/libunwind.so.8: undefined reference to `lzma_index_uncompressed_size@XZ_5.0'
解决方法:
1.
ldconfig -p | grep lzma
    liblzma.so.5 (libc6,x86-64) => /lib/x86_64-linux-gnu/liblzma.so.5
    liblzma.so.5 (libc6) => /lib/i386-linux-gnu/liblzma.so.5
    liblzma.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/liblzma.so
2.
export LD_LIBRARY_PATH=/lib/x86_64-linux-gnu/



问题二:
libcudart.so.7.5: cannot open shared object file: No such file or directory
解决方法:


1)管理员直接加入

32-bitsudo ldconfig /usr/local/cuda/lib

64-bitsudo ldconfig /usr/local/cuda/lib64

2)服务器加入自己路径下的设置中

首先打开bashrc文件:gedit ~/.bashrc

在文件末尾加入环境变量,如64-bit:export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"

保存文件退出,在终端保存加载设置:soucre ~/.bashrc 

3)临时性加入,下次登录后需要重新加入

export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"


问题三:
libhdf5_hl.so.10: cannot open shared object file: No such file or directory
我用anaconda2
解决方法:
export LD_LIBRARY_PATH=/path/to/your/anaconda2/lib:$LD_LIBRARY_PATH
我的是
export LD_LIBRARY_PATH=/home/k/anaconda2/lib:$LD_LIBRARY_PATH


问题四:
fatal error: caffe/proto/caffe.pb.h: No such file or directory  #include "caffe/proto/caffe.pb.h"
解决方法:
# In the directory you installed Caffe to
protoc src/caffe/proto/caffe.proto --cpp_out=.
mkdir include/caffe/proto
mv src/caffe/proto/caffe.pb.h include/caffe/proto

问题五:
error while loading shared libraries: libprotoc.so.9: cannot open shared object file: No such file or directory
解决方法:
export LD_LIBRARY_PATH=/usr/local/lib/



问题六:undefined reference to `caffe::db::GetDB(std::string const&)'
collect2: error: ld returned 1 exit status
make: *** [.build_release/tools/extract_features.bin] Error 1
make: *** Waiting for unfinished jobs....
.build_release/tools/compute_image_mean.o: In function `main':
compute_image_mean.cpp:(.text.startup+0x1b0): undefined reference to `caffe::db::GetDB(std::string const&)'
collect2: error: ld returned 1 exit status
make: *** [.build_release/tools/compute_image_mean.bin] Error 1
.build_release/tools/convert_imageset.o: In function `main':
convert_imageset.cpp:(.text.startup+0x625): undefined reference to `caffe::db::GetDB(std::string const&)'
collect2: error: ld returned 1 exit status
make: *** [.build_release/tools/convert_imageset.bin] Error 1

解决方法清除/usr/lib/libcaffe.so或清除/usr/local/lib/libcaffe.so


问题七:
lib/libcaffe.so: undefined reference to `cudnnSetLRNDescriptor'
lib/libcaffe.so: undefined reference to `cudnnGetConvolutionBackwardDataWorkspaceSize'
lib/libcaffe.so: undefined reference to `cudnnSetFilter4dDescriptor'
lib/libcaffe.so: undefined reference to `cudnnGetConvolutionForwardAlgorithm'
lib/libcaffe.so: undefined reference to `cudnnConvolutionBackwardData_v3'
lib/libcaffe.so: undefined reference to `cudnnGetConvolutionBackwardFilterWorkspaceSize'
lib/libcaffe.so: undefined reference to `cudnnCreateConvolutionDescriptor'
lib/libcaffe.so: undefined reference to `cudnnDestroyConvolutionDescriptor'
lib/libcaffe.so: undefined reference to `cudnnSoftmaxBackward'
lib/libcaffe.so: undefined reference to `cudnnConvolutionForward'
lib/libcaffe.so: undefined reference to `cudnnLRNCrossChannelBackward'
lib/libcaffe.so: undefined reference to `curandGenerateUniform'
lib/libcaffe.so: undefined reference to `cudnnPoolingBackward'
lib/libcaffe.so: undefined reference to `cudnnCreateTensorDescriptor'
lib/libcaffe.so: undefined reference to `cublasDdot_v2'
lib/libcaffe.so: undefined reference to `curandGenerateUniformDouble'
lib/libcaffe.so: undefined reference to `cudnnCreatePoolingDescriptor'
lib/libcaffe.so: undefined reference to `cudnnDestroyFilterDescriptor'
lib/libcaffe.so: undefined reference to `cudnnActivationBackward'
lib/libcaffe.so: undefined reference to `cudnnDestroyTensorDescriptor'
lib/libcaffe.so: undefined reference to `cublasDaxpy_v2'
lib/libcaffe.so: undefined reference to `cudnnCreateLRNDescriptor'
lib/libcaffe.so: undefined reference to `curandCreateGenerator'
lib/libcaffe.so: undefined reference to `cudnnGetConvolutionForwardWorkspaceSize'
lib/libcaffe.so: undefined reference to `cublasDscal_v2'
lib/libcaffe.so: undefined reference to `cublasScopy_v2'
lib/libcaffe.so: undefined reference to `cudnnAddTensor'
lib/libcaffe.so: undefined reference to `cudnnDestroyPoolingDescriptor'
lib/libcaffe.so: undefined reference to `cudnnSoftmaxForward'
lib/libcaffe.so: undefined reference to `cudnnActivationForward'
lib/libcaffe.so: undefined reference to `cudnnPoolingForward'
lib/libcaffe.so: undefined reference to `cublasSgemv_v2'
lib/libcaffe.so: undefined reference to `cudnnSetTensor4dDescriptorEx'
lib/libcaffe.so: undefined reference to `curandSetPseudoRandomGeneratorSeed'
lib/libcaffe.so: undefined reference to `cublasSdot_v2'
lib/libcaffe.so: undefined reference to `cudnnSetPooling2dDescriptor'
lib/libcaffe.so: undefined reference to `curandDestroyGenerator'
lib/libcaffe.so: undefined reference to `cudnnConvolutionBackwardBias'
lib/libcaffe.so: undefined reference to `cublasDcopy_v2'
lib/libcaffe.so: undefined reference to `cudnnGetConvolutionBackwardFilterAlgorithm'
lib/libcaffe.so: undefined reference to `cublasDestroy_v2'
lib/libcaffe.so: undefined reference to `curandGenerateNormalDouble'
lib/libcaffe.so: undefined reference to `cublasSgemm_v2'
lib/libcaffe.so: undefined reference to `cudnnCreateFilterDescriptor'
lib/libcaffe.so: undefined reference to `cublasDgemv_v2'
lib/libcaffe.so: undefined reference to `cublasDasum_v2'
lib/libcaffe.so: undefined reference to `cudnnSetStream'
lib/libcaffe.so: undefined reference to `cudnnLRNCrossChannelForward'
lib/libcaffe.so: undefined reference to `cudnnConvolutionBackwardFilter_v3'
lib/libcaffe.so: undefined reference to `curandSetGeneratorOffset'
lib/libcaffe.so: undefined reference to `cublasSaxpy_v2'
lib/libcaffe.so: undefined reference to `cudnnDestroy'
lib/libcaffe.so: undefined reference to `cublasDgemm_v2'
lib/libcaffe.so: undefined reference to `curandGenerate'
lib/libcaffe.so: undefined reference to `cublasSscal_v2'
lib/libcaffe.so: undefined reference to `cudnnSetConvolution2dDescriptor'
lib/libcaffe.so: undefined reference to `cublasSasum_v2'
lib/libcaffe.so: undefined reference to `cublasCreate_v2'
lib/libcaffe.so: undefined reference to `curandGenerateNormal'
lib/libcaffe.so: undefined reference to `cudnnGetConvolutionBackwardDataAlgorithm'
lib/libcaffe.so: undefined reference to `cudnnDivisiveNormalizationBackward'
lib/libcaffe.so: undefined reference to `cudnnDivisiveNormalizationForward'
lib/libcaffe.so: undefined reference to `cudnnCreate'
解决方法:
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH

问题七:
make pycaffe错误:
CXX/LD -o python/caffe/_caffe.so python/caffe/_caffe.cpp
python/caffe/_caffe.cpp:1:52: fatal error: Python.h: No such file or directory
 #include  // NOLINT(build/include_alpha)
                                                    ^
compilation terminated.
make: *** [python/caffe/_caffe.so] Error 1
解决方法:
Makefile.config中anaconda路径不对
问题八:
如果发现编译的时候没有找到cudnn相关的头文件,那么有可能是用了低版本的cudnn,特别是cudnnv4,下载cudnnv5和新版caffe然后把include和lib分别放到cuda响应的include和lib64上然后重新编译。
问题九:
undefined symbol: _ZN5caffe13CuDNNLCNLayerIfED1Ev
找不到libcaffe相关库文件
export LD_LIBRARY_PATH到你编译后使用的libcaffe.so所在位置

wenti10

error while loading shared libraries: libmkl_rt.so: cannot open shared object file: No such file or directory

解决方法:/etc/ld.so.conf.d/ 文件夹下增加了一个文件命名为intel_mkl_settings.conf。 然后在里面添加MKL库路径

             /opt/intel/mkl/lib/intel64

wenti11、error while loading shared libraries: libcudart.so.5.5: cannot open shared object file: No such file or directory

解决方法:

32-bit: sudo ldconfig /usr/local/cuda/lib

64-bit: sudo ldconfig /usr/local/cuda/lib64

Q8:make: Nothing to be done for `all' 解决方法

1.这句提示是说明你已经编译好了,而且没有对代码进行任何改动。

若想重新编译,可以先删除以前编译产生的目标文件:
make clean
然后再
make
 

2.出现这种情况解决方法:


a.make clean 清除安装时留下的文件

b.在运行一下ldconfig
c.再make 可运行出结果
Q9:使用caffe的python接口时,很多人都会遇到如下问题:
from ._caffe import Net, SGDSolver, NesterovSolver, AdaGradSolver, \ImportError: libcaffe.so.1.0.0-rc3: cannot open shared object file: No such file or directory2

这个错误目前非常普遍,在Google上也可以搜索到非常多的讨论,大多数人提出的解决方法是把caffe-master/python和caffe-master/build/lib目录添加到~/.bashrc中,但是问题在于需要修改bashrc,可能会带来很多意想不到的问题.

造成这个问题的主要原因在于使用make进行编译,导致import caffe时找不到静态链接库.

现给出两种比较安全的解决方案:
(1) 在python 代码中加入如下代码:

import os, sysold_path = os.getcwd()caffe_root = "caffe-master"os.chdir(caffe_root + "/python")import caffeos.chdir(old_path)

这部分代码就是先切换到caffe的python目录,然后导入caffe库,然后在切换回原来目录.

(2) 其实找不到libcaffe.so.1.0.0-rc3主要原因在于使用了make进行编译,使得caffe的python接口只能在这个目录下面才能找得到这个库.解决办法是使用cmake进行编译:

cd caffe-master   mkdir build   cd build   cmake ..

这样编译后如果要在python中使用caffe,只需要将caffe的python目录添加到sys.path之中即可:

import os   caffe_root = "caffe-master"   os.path.append(caffe_root + "/python")

原创粉丝点击