为什么nvcc找不到我的Visual C ++安装?

时间:2010-05-03 18:45:07

标签: windows visual-c++ cuda nvcc

我在Core i5上运行Windows 7 Pro x64,NVIDIA 3100m,兼容CUDA。

我已经尝试过安装NVIDIA的32位和64位CUDA工具包,不幸的是,他们中的任何一个都无法编译任何东西; nvcc说“找不到支持的cl版本。只支持MSVC 8.0和MSVC 9.0”。

我通过Windows 7 SDK(两个拱门的编译器版本15.00.30729.01)安装了x86和x86-64编译器。两个编译器都正常运行;我已经使用它们构建并测试了C和C ++代码。我尝试从为32位和64位编译设置的命令shell运行nvcc,并使用-ccbin命令行选项将nvcc指向Visual C ++安装目录。

处理此设置的正确方法是什么?有没有什么方法可以让nvcc对于发生的事情更加冗长? -v标志并没有太大的帮助。理想情况下,某种方式可以让它显示出发现的内容与预期发现的内容。如果我安装Visual C ++ Express,这会更好吗?或者只是支持与CUDA一起使用的VC ++的商业版本?

4 个答案:

答案 0 :(得分:7)

包括此行

  

compiler-bindir = C:\ Program Files   (x86)\ Microsoft Visual Studio   9.0 \ VC \仓

  

C:\ CUDA \ bin64适用\ nvcc.profile

答案 1 :(得分:4)

使用CUDA v6.0,仍然需要使用较旧版本的Visual Studio(我使用2010),但其他解决方案对我不起作用。

要使其工作,请将以下内容添加到您的nvcc.profile(C:/ Program Files / NVIDIA GPU Computing Toolkit / CUDA / v6.0 / bin / nvcc.profile):

CUDA_NVCC_FLAGS += --compiler-bindir = "-IE:/PROGRA~2/MICROS~2.0/VC/bin"

我也安装了VS 2013,我需要这个参数来阻止nvcc找到更新的(可悲的是不兼容的)cl.exe版本

答案 2 :(得分:2)

看起来您没有安装Visual Studio 2005或2008,但您的编译器版本号表明它是MSVC 9.0。让一切正常工作的最简单方法是安装Visual Studiso,我相信Express会起作用。

另外,您可能希望在Nvidia Forum

上查看此主题

答案 3 :(得分:1)

我试图让CUDA 6.5与VS 2010 express一起使用。卸载VS 2010 Express后,安装Windows SDK 7.1并重新安装VS 2010 express,将Windows SDK 7.1设置为工具集等。没有任何效果。最后,对我有用的是将以下内容添加到CUDA_NVCC_FLAGS:

--cl-version 2010

您可能还需要添加:

--machine 32

我首先在命令行中尝试了相应的标志。

This link was very helpful