指定CUDA版本失败的解决方案

新电脑安装的WIN11系统,因为CUDA只有11和12目前能装到WIN11上,所以就装了一个CUDA 11.7。但是编译PBRT失败,所以无奈之下又装了CUDA 12。

但是因为我有的代码需要CUDA 11里的函数,这些函数在CUDA12里被彻底删除了,但是接下来我的代码中,CMakeLists.txt 无论怎么设置,结果都只能选择CUDA 12的nvcc.exe。

一方面是网上实在没有什么资料,尝试了一些相关的设置,比如下面的设置都不行:

#set(CMAKE_INSTALL_PREFIX "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.7/bin")
#SET(CMAKE_CUDA_COMPILER "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.7/bin/nvcc.exe")

#SET(CUDA_FLAGS "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.7/bin/nvcc.exe")

project(FeimosVolumeRender LANGUAGES CXX CUDA)

#SET(CUDA_FLAGS "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.7/bin/nvcc.exe")

#set(CUDA_NVCC_FLAGS "C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v11.7/bin/nvcc.exe")

系统路径也全改了,还是不行。

虽然我知道卸载CUDA12一定可以,但是我实在不想装了又卸,很麻烦的。

无奈之下,重装了一下CUDA 11,我本以为是12压制住了11,但是又重装了11以后仍然不行。

一气之下,把CUDA 12的路径改了,让编译器暂时搜索不到:

指定CUDA版本失败的解决方案_第1张图片

 此时CMake报错:

指定CUDA版本失败的解决方案_第2张图片

我服了大哥,cmake12没有你选cuda11是能死啊?

后来我在VS里看到用到了CUDA 12.1.targets,我寻思着把这个路径下的这些东西先给删了:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\VC\VCTargets\BuildCustomizations

指定CUDA版本失败的解决方案_第3张图片

 删掉这三个文件以后,就可以配置为使用CUDA11编译器了。等Cmake生成好以后,再把这删掉的这三个文件恢复一下就好了。

你可能感兴趣的:(出错专栏,Cuda,c++,c语言)