报错如下
/sbin/ldconfig.real: /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_ops_infer.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_adv_infer.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_adv_train.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_cnn_infer.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_ops_train.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn.so.8 is not a symbolic link
/sbin/ldconfig.real: /usr/local/cuda-11.7/targets/x86_64-linux/lib/libcudnn_cnn_train.so.8 is not a symbolic link
解决方案
1. 进入 CUDA 库目录
cd /usr/local/cuda-11.7/targets/x86_64-linux/lib
2. 列出当前 cuDNN 文件,确认版本号
ls -l libcudnn*
记下文件名中的版本号(如 8.5.0)。
3. 为每个报错的库创建符号链接\
语法:
sudo ln -sf <实际文件名> <符号链接名>
示例:
# 通用格式(替换版本号)
sudo ln -sf libcudnn.so.8.5.0 libcudnn.so.8
sudo ln -sf libcudnn_ops_infer.so.8.5.0 libcudnn_ops_infer.so.8
sudo ln -sf libcudnn_adv_train.so.8.5.0 libcudnn_adv_train.so.8
sudo ln -sf libcudnn_adv_infer.so.8.5.0 libcudnn_adv_infer.so.8
sudo ln -sf libcudnn_cnn_infer.so.8.5.0 libcudnn_cnn_infer.so.8
sudo ln -sf libcudnn_ops_train.so.8.5.0 libcudnn_ops_train.so.8
sudo ln -sf libcudnn_cnn_train.so.8.5.0 libcudnn_cnn_train.so.8
4. 验证符号链接是否创建成功
ls -l libcudnn*.so.8
正确输出应显示符号链接箭头 ->,例如:
5. 更新库缓存
sudo ldconfig