使用安装在HOME目录中的cudnn编译caffe(没有root priviledg):找不到lcudnn

时间:2017-12-14 03:50:23

标签: cuda caffe

最近在服务器上编译caffe时遇到问题,提示/usr/bin/ld: cannot find -lcudnn 由于我没有root priviledge,我在CUDA-8.0目录中安装了HOME,然后下载libcudnn7-dev并手动执行dpkg-deb -xv libcudnn-dev*.deb以提取deb pkg,然后我转到lib目录,然后运行ar -x libcudnn*.agcc -shared *.o -o libcudnn.so,然后将生成的libcudnn.so复制到~/cuda/lib64,然后将~/cuda/lib64添加到LD_LIBRARY_PATH,但错误提示,我不知道如何解决此问题,有人可以提供帮助吗?

我不明白为什么/usr/bin/ld: cannot find -lcudnn,而不是LD_LIBRARY_PATH/=: cannot find -lcudnn

编辑: 我下载了.tgz文件,并按照安装指南说明安装cudnn,但它仍然提示错误,我的〜/ .bashrc已配置:

export CUDA_HOME="~/cuda" export PATH="/home/wangtao/anaconda2/bin:$CUDA_HOME/bin:$PATH" export LD_LIBRARY_PATH="$CUDA_HOME/lib64:$LD_LIBRARY_PATH"

我发现/etc/ld.so.conf是这样的:

include /etc/ld.so.conf.d/*.conf /usr/local/cuda-7.0/lib64 它不是我想要的~/cuda/lib64路径,但不知道如何修改它,因为我没有在服务器上拥有root权限,我已在本地机器上成功编译,但这似乎是很难

1 个答案:

答案 0 :(得分:-1)

我们新手需要了解更多,也许其他人有时候不会帮助你,帮助自己,了解更多! 事实证明链接不同于动态加载,链接完成前动态加载,LD_LIBRARY_PATH可以影响的是动态加载,这给出了库文件路径(例如,.so.1.0,而不是.so这通常是.so.1.0内容的符号链接,用于链接器而不是加载器),因此将libcudnn.so路径添加到LD_LIBRARY_PATH没有帮助,/usr/bin/ld抱怨的是链接器找不到cudnn库,所以我们需要为链接器添加libcudnn.so路径来找到它,这是LIBRARY_PATH来帮助的,只需将它添加到它,然后链接器可以找到它,有时我们只是没有正确的方向,不讨厌,只是学习更多:)