Error: libxxxxxxx: cannot open shared object file: No such file or directory

出现Error: libxxxxxxx: cannot open shared object file: No such file or directory 的可能有效解决方法如下:

注:前提是本地能够找到libxxxxxxx,但一直提示:

复制代码
Could not load library libxxxxxxx. Error: libxxxxxxx: cannot open shared object file: No such file or directory
Please make sure libxxxxxxx is in your library path!

这里以libcudnn_cnn_infer.so.8为例。

先运行:

复制代码
ldconfig -p | grep cuda

得到输出:

复制代码
	libcudart.so.11.0 (libc6,x86-64) => /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudart.so.11.0
	libcudart.so.10.2 (libc6,x86-64) => /lib/libcudart.so.10.2
	libcudart.so (libc6,x86-64) => /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudart.so
	libcudadebugger.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libcudadebugger.so.1
	libcuda.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libcuda.so.1
	libcuda.so.1 (libc6) => /lib/i386-linux-gnu/libcuda.so.1

打比方说,libcudart.so.11.0,是放到/usr/local/cuda-11.3/targets/x86_64-linux/lib/目录下面的。

然后找到本地的libcudnn_cnn_infer.so.8:

复制代码
sudo find / -name "libcudnn_cnn_infer.so.8"

得到结果:

复制代码
/home/ai/miniconda3/lib/python3.7/site-packages/nvidia/cudnn/lib/libcudnn_cnn_infer.so.8
/home/ai/miniconda3/pkgs/pytorch-2.0.1-py3.10_cuda11.7_cudnn8.5.0_0/lib/python3.10/site-packages/torch/lib/libcudnn_cnn_infer.so.8
/home/ai/miniconda3/pkgs/pytorch-1.12.1-py3.7_cuda11.3_cudnn8.3.2_0/lib/python3.7/site-packages/torch/lib/libcudnn_cnn_infer.so.8
/home/ai/miniconda3/pkgs/pytorch-2.0.0-py3.10_cuda11.8_cudnn8.7.0_0/lib/python3.10/site-packages/torch/lib/libcudnn_cnn_infer.so.8

然后将找到的libcudnn_cnn_infer.so.8复制到上面通过ldconfig得到的路径:

复制代码
sudo cp -rf /home/ai/miniconda3/lib/python3.7/site-packages/nvidia/cudnn/lib/libcudnn_cnn_infer.so.8 /usr/local/cuda-11.3/targets/x86_64-linux/lib/

然后:

复制代码
sudo ldconfig

再通过ldconfig -p | grep cuda查看最新的输出:

复制代码
	libcudnn_cnn_infer.so.8 (libc6,x86-64) => /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8
	libcudart.so.11.0 (libc6,x86-64) => /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudart.so.11.0
	libcudart.so.10.2 (libc6,x86-64) => /lib/libcudart.so.10.2
	libcudart.so (libc6,x86-64) => /usr/local/cuda-11.3/targets/x86_64-linux/lib/libcudart.so
	libcudadebugger.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libcudadebugger.so.1
	libcuda.so.1 (libc6,x86-64) => /lib/x86_64-linux-gnu/libcuda.so.1
	libcuda.so.1 (libc6) => /lib/i386-linux-gnu/libcuda.so.1

就能看到 libcudnn_cnn_infer.so.8了。

相关推荐
hy____12312 分钟前
Linux_进程间通信
linux·运维·服务器
jay神23 分钟前
基于YOLOv8的木材表面缺陷检测系统
人工智能·深度学习·yolo·计算机视觉·毕业设计
郭涤生31 分钟前
C++的函数是否可以做到完全覆盖Linux和windows的跨平台
linux·c++·windows
songyuc39 分钟前
【Llava】load_pretrained_model() 说明
人工智能·深度学习
名为沙丁鱼的猫7291 小时前
【MCP 协议层(Protocol layer)详解】:深入分析MCP Python SDK中协议层的实现机制
人工智能·深度学习·神经网络·机器学习·自然语言处理·nlp
南宫码农1 小时前
神马影视8.5版本如意伪静态+视频教程
linux·运维·centos
坐怀不乱杯魂1 小时前
Linux网络 - 网络层
linux·服务器·网络
j_xxx404_1 小时前
Linux:命令行参数与环境变量
linux·运维·服务器
j_xxx404_1 小时前
Linux:进程虚拟地址空间|虚拟内存管理
linux·运维·服务器
江畔何人初2 小时前
pod的定义以及创建过程
linux·运维·云原生