cuda报错 OSError: libcudart.so.10.0: cannot open shared object file: No such file

有时候会碰到cuda报错,OSError: libcudart.so.10.0: cannot open shared object file: No such file
在这里插入图片描述
原因是cuda动态链接库没有链接上。
解决方法如下:
cuda10.0:

sudo ldconfig /usr/local/cuda-10.0/lib64

cuda9.0:

sudo ldconfig /usr/local/cuda-9.0/lib64/

  • 说明
    ldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态 链接库(格式如前介绍,lib*.so*),进而创建出动态装入程序(ld.so)所需的连接和缓存文件.缓存文件默认为 /etc/ld.so.cache,此文件保存已排好序的动态链接库名字列表.

但是有时候运行 sudo ldconfig /usr/local/cuda-10.0/lib64,会报错,例如
/sbin/ldconfig.real:/usr/local/cuda-10.0/lib64/libcudnn.so.7 不是符号链接,或
/sbin/ldconfig.real: /usr/local/cuda/lib64/libcudnn.so.7 is not a symbolic link
在这里插入图片描述
原因是链接没有建立,故需要建立符号链接。
解决方法如下:
cuda10.0:

ln -sf /usr/local/cuda-10.0/lib64/libcudnn.so.7.6.5 /usr/local/cuda-10.0/lib64/libcudnn.so.7

cuda9.0:

sudo ln -sf /usr/local/cuda-9.0/lib64/libcudnn.so.7.6.1 /usr/local/cuda-9.0/lib64/libcudnn.so.7

  • 说明
    linux 命令ln 为某一个文件或目录在另外一个位置建立一个同步的链接,类似Windows下的超级链接。

你可能感兴趣的:(假装一直在跑,linux,cuda,深度学习,tensorflow,机器学习)