Visual studio 2012 nvcc.exe链接错误Microsoft Visual Studio配置文件';vcvars64.bat';找不到

Visual studio 2012 nvcc.exe链接错误Microsoft Visual Studio配置文件';vcvars64.bat';找不到,visual-studio-2012,cuda,nvcc,Visual Studio 2012,Cuda,Nvcc,我想从windows命令行使用nvcc-ptx,但我总是收到以下错误消息: nvcc:致命错误:在“C:\Program Files(x86)\Microsoft Visual Studio”中找不到要安装的Microsoft Visual Studio配置文件“vcvars64.bat” tudio 11.0\VC\bin/./…' 我使用的是VS2012快速版。解决方案是什么?来自文档 1.2。支持的主机编译器 nvcc使用以下编译器编译主机代码: 在Linux平台上 GNU编译器、gcc和

我想从windows命令行使用
nvcc-ptx
,但我总是收到以下错误消息: nvcc:致命错误:在“C:\Program Files(x86)\Microsoft Visual Studio”中找不到要安装的Microsoft Visual Studio配置文件“vcvars64.bat” tudio 11.0\VC\bin/./…'

我使用的是VS2012快速版。解决方案是什么?

来自文档

1.2。支持的主机编译器 nvcc使用以下编译器编译主机代码:

在Linux平台上

GNU编译器、gcc和arm-linux-gnueabihf-g++用于交叉编译到ARMv7 建筑

在Windows平台上

Microsoft Visual Studio编译器,cl在两个平台上,该编译器在当前 将使用执行搜索路径,除非指定了nvcc选项-编译器bindir(请参阅文件和路径规范)


在您的项目中,请转到“配置属性”>“CUDA C/C++>设备”并将代码生成更改为以下内容:compute_11、sm_11

我已设法解决了该问题,并与MS Visual Studio Express 2012合作,以下是我所做的:

  • 已安装MS Visual Studio 2012 Express
  • 已安装
    cuda_5.5.20_winvista_win7_win8_general_64
    ,最新版本于2014-01-16
  • 从以下目录:
    C:\ProgramFiles(x86)\Microsoft Visual Studio 11.0\VC\bin
    ,我已将x86\u amd64复制到amd64
  • 在新目录中:
    C:\ProgramFiles(x86)\Microsoft Visual Studio 11.0\VC\bin\amd64
    ,我创建了一个文件
    vcvvars64.bat
  • 在文件
    vcvars64.bat
    中,刚刚添加了:
    调用setenv/x64
  • 汇编工作非常成功:

    C:\CUDA>nvcc -o square square.cu
        Creating library square.lib and object square.exp
    
    C:\CUDA>square.exe
    0.000000        1.000000        4.000000        9.000000
    16.000000       25.000000       36.000000       49.000000
    64.000000       81.000000       100.000000      121.000000
    144.000000      169.000000      196.000000      225.000000
    

    您的visual studio安装要求使用.NET v3.5框架:


    从中获得以下信息:

    您的项目是设置为32位还是设置为64位?创建
    x86\u amd64
    目录副本并调用此副本
    amd64
    的(看似毫无意义)步骤为我做到了这一点。我从来没有发现过(NVCC错误消息没有告诉任何关于这一点的信息-相反,它表明它正在Visual Studio基本目录中查找
    vcvars64.bat
    ),这也对我起到了作用,除了VS2010,我不必添加amd64文件夹-它已经在那里了,所以我只是在那里创建了批处理文件和presto。对我来说也很有效,首先我用“nvcc”测试它,它不起作用,但编译过程对cuda有效。这对我来说并没有修复任何问题,并警告它们已被弃用。