You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04下CMake无法找到cuDNN,编译GPU版OpenCV-python遇阻

解决CMake编译OpenCV时找不到cuDNN的问题

核心原因

PyTorch、TensorFlow对cuDNN的识别逻辑和CMake不同,当前问题大概率是CMake无法自动定位到cuDNN的安装路径,导致配置阶段报错。

具体解决步骤

1. 手动指定cuDNN路径到CMake命令

在原有CMake命令中添加cuDNN相关路径参数,根据你的安装方式替换对应路径:

  • 若通过deb包安装cuDNN,默认路径为/usr/include(头文件)和/usr/lib/x86_64-linux-gnu(库文件)
  • 若为解压手动安装,路径通常是/usr/local/cuda/include和/usr/local/cuda/lib64

修改后的CMake命令示例:

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_C_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D WITH_CUDA=ON \
-D WITH_CUDNN=ON \
-D OPENCV_DNN_CUDA=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D CUDA_ARCH_BIN=7.5 \
-D WITH_CUBLAS=1 \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D HAVE_opencv_python3=ON \
-D PYTHON_EXECUTABLE=/usr/bin/python3 \
-D BUILD_EXAMPLES=ON \
-D WITH_GSTREAMER=ON \
-D CUDNN_INCLUDE_DIR=/usr/local/cuda/include \
-D CUDNN_LIBRARY=/usr/local/cuda/lib64/libcudnn.so.8.9 \
-D CUDNN_VERSION=8.9 ..

2. 配置环境变量让CMake识别路径

终端执行以下命令临时生效:

export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CMAKE_PREFIX_PATH=/usr/local/cuda:$CMAKE_PREFIX_PATH

如需永久生效,将上述两行添加到~/.bashrc或~/.zshrc文件末尾,再执行source ~/.bashrc刷新环境。

3. 验证cuDNN安装完整性

检查关键文件是否存在:

# 检查头文件
ls /usr/local/cuda/include/cudnn*.h
# 检查库文件
ls /usr/local/cuda/lib64/libcudnn*.so*

若文件缺失,重新下载对应版本的cuDNN并完成安装(deb包直接安装,解压包需手动将头文件和库文件复制到CUDA目录)。

4. 清理CMake缓存后重新配置

若之前已执行过CMake,先清理缓存再重新运行命令:

cd 你的OpenCV编译目录
rm -rf CMakeCache.txt CMakeFiles/
# 重新执行修改后的CMake命令

内容的提问来源于stack exchange,提问作者Richzrich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 05:25:23