配置YOLOv3/YOLOv4的Darknet时CMake提示CUDA未找到的GPU支持错误
问题描述
按照教程配置Windows环境下带CUDA支持的Darknet(YOLOv3)时,CMake抛出报错:
CMake Error at CMakeLists.txt:156 (message): CUDA not found, please build explicitly with -DENABLE_CUDA=OFF if you do not want CUDA.
已在CMD中确认CUDA 11.2正常可用,但查阅相关线程未找到有效解决方法。
解决步骤
手动指定CUDA路径运行CMake
直接在CMake命令里显式指定CUDA的安装路径和编译器位置,示例命令(替换成你实际的CUDA路径和VS版本):cmake -G "Visual Studio 16 2019" -DCMAKE_CUDA_COMPILER="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin\nvcc.exe" -DCUDA_TOOLKIT_ROOT_DIR="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2" ..若用VS2022,把
Visual Studio 16 2019换成Visual Studio 17 2022即可。检查并修复环境变量
确认系统环境变量里存在CUDA_PATH和CUDA_PATH_V11_2,且C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin已加入PATH。如果缺失,手动添加后重启所有相关窗口(CMD、CMake GUI等)再重试。验证CMake版本兼容性
CUDA 11.2要求CMake版本至少3.18,先检查当前版本:cmake --version版本不够就去CMake官网升级到3.20及以上的稳定版。
补全Visual Studio组件
打开Visual Studio Installer,确保勾选了「使用C++的桌面开发」组件,以及对应的NVIDIA CUDA集成工具(如果安装选项里有),补装后重启VS再重新运行CMake。修改Darknet的CMakeLists.txt
打开Darknet根目录的CMakeLists.txt,在CUDA检测逻辑(大概156行附近)前手动添加CUDA路径:set(CUDA_TOOLKIT_ROOT_DIR "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.2") find_package(CUDA REQUIRED)注意路径用正斜杠或者双反斜杠,保存后重新执行CMake。
内容的提问来源于stack exchange,提问作者Jan

