首页 文章

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

提问于
浏览
2

我在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 回答

  • 1

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

    另外,您可能想在Nvidia Forum上查看此主题

  • 4

    包括这一行

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

    C:\ CUDA \ bin64 \ nvcc.profile

  • 2

    使用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版本

  • 7

    我试图让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

相关问题