有时候会碰到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下的超级链接。