报错:Could not load library libcudnn_cnn_infer.so.8. Error: libcuda.so: cannot open shared object file

上述就是我报错的内容

⭐用了一行代码解决:(可以根据不同的cuda版本将11.3改为需要的版本)

export LD_LIBRARY_PATH=/usr/local/cuda-11.3/lib64/stubs/:/usr/local/cuda-11.3/lib64:/usr/local/cuda-11.3/cudnn/lib:$LD_LIBRARY_PATH

解释:

这行命令的作用是将 CUDA 和 cuDNN 相关的库的路径添加到 LD_LIBRARY_PATH 中,以确保系统能够正确地找到这些库文件,从而使得依赖这些库的程序能够顺利运行

  • export:这个关键词用于在当前会话中将变量导出为环境变量,使其对当前会话及其子进程可见。

  • LD_LIBRARY_PATH:这是一个环境变量,用于指定动态链接库的搜索路径。当你运行一个需要依赖动态链接库的可执行程序时,系统会根据这个变量指定的路径去查找相应的动态链接库文件。

  • /usr/local/cuda-11.3/lib64/stubs/:这是CUDA库中存放stubs的路径,stubs是一种特殊的库,它包含了对其他库的调用接口,但实际上并不包含具体的实现代码。在某些情况下,需要将这个路径加入到 LD_LIBRARY_PATH 中以确保CUDA相关的程序能够正常运行。

  • /usr/local/cuda-11.3/lib64:这是CUDA库的路径,包含了CUDA的动态链接库文件。

  • /usr/local/cuda-11.3/cudnn/lib:这是cuDNN(CUDA深度神经网络库)的库路径,包含了cuDNN的动态链接库文件。

  • $LD_LIBRARY_PATH:这部分是为了将原先已经存在的 LD_LIBRARY_PATH 的值添加到新设置的路径前面,以保留原先的路径设置。

希望能够帮你解决问题~

猜你喜欢

转载自blog.csdn.net/2301_77554343/article/details/134399045