问题描述

在使用VS2019的cmake构建cuda项目时,遇到了Couldn't find CUDA library root的错误。但直接创建msbuild的cuda runtime项目则可以成功运行。

系统和版本号

系统:windows 10
visual studio:2019 16.11.26
visual studio附带cmake:3.20
cuda:11.7

尝试方案

  1. 添加/修改环境变量中关于CUDA的部分【无效】
  2. 使用SET指令设置CMAKE_CUDA_COMPILER_TOOLKIT_ROOT为CUDA的安装路径【无效】
  3. 修改CMakeSetting.json,加上-DCMAKE_CUDA_COMPILER_TOOLKIT_ROOT或直接在CMake变量和缓存中添加CMAKE_CUDA_COMPILER_TOOLKIT_ROOT【无效】

问题解决

在cmake的官方仓库中找到一个issue:Enabling CUDA fails in the presence of certain environment variables,发现了一些问题,但是修复在cmake-3.20.3中完成的,而visual studio无法单独更新cmake的版本。
于是可以在安装最新版的cmake,然后从CMakeSetting.json的高级设置中将CMake可执行文件设置为自己新安装的高版本cmake,路径为安装路径下的bin/cmake.exe
现在生成缓存时就不会报Couldn't find CUDA library root了。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐