【问题标题】:nvcc fatal : Compiler 'cl.exe' in PATH different than the one specified with -ccbinnvcc 致命:PATH 中的编译器“cl.exe”与 -ccbin 指定的编译器不同
【发布时间】:2016-02-10 21:57:43
【问题描述】:

我在 Windows 7-SP1 上安装了 CUDA 7.5,我正在使用 Visual Studio 2013。 不幸的是,我无法运行任何 CUDA 代码。我什至无法构建示例带宽测试。我收到以下错误:

C:\ProgramData\NVIDIA Corporation\CUDA Samples\v7.5\1_Utilities\bandwidthTest>"C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v7.5\bin\nvcc.exe" -gencode=arch=compute_20,code=\"sm_20,compute_20\" -gencode=arch=compute_30,code=\"sm_30,compute_30\" -gencode=arch=compute_35,code=\"sm_35,compute_35\" -gencode =arch=compute_37,code=\"sm_37,compute_37\" -gencode=arch=compute_50,code=\"sm_50,compute_50\" -gencode=arch=compute_52,code=\"sm_52,compute_52\" --use- local-env --cl-version 2013 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64" -I./ -I../../common/inc -I. / -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5/include" -I../../common/inc -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7 .5\include" --keep-dir x64\Release -maxrregcount=0 --machine 64 --compile -cudart static -Xcompiler "/wd 4819" -DWIN32 -DWIN32 -D_MBCS -D_MBCS -Xcompiler "/EHsc /W3 /nologo /O2 /Zi /MT " -o x64/Release/bandwidthTest.cu .obj "C:\ProgramData\NVIDIA 公司\CUDA Samples\v7.5\1_Utilities\bandwidthTest\bandwidthTest.cu" 1> nvcc 致命:PATH中的编译器'cl.exe'与指定的不同 使用 -ccbin 1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations\CUDA 7.5.targets(604,9): error MSB3721: The command ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5\bin\nvcc.exe" -gencode=arch=compute_20,code=\"sm_20,compute_20\" -gencode=arch=compute_30,code=\"sm_30,compute_30\" -gencode=arch=compute_35,code=\"sm_35,compute_35\" -gencode =arch=compute_37,code=\"sm_37,compute_37\" -gencode=arch=compute_50,code=\"sm_50,compute_50\" -gencode=arch=compute_52,code=\"sm_52,compute_52\" --use- local-env --cl-version 2013 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64" -I./ -I../.. /common/inc -I./ -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7.5/include" -I../../common/inc -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v7 .5\include" --keep-dir x64\Release -maxrregcount=0 --machine 64 --compile -cudart static -Xcompiler "/wd 4819" -DWIN32 -DWIN32 -D_MBCS -D_MBCS -Xcompiler "/EHsc /W3 /nologo /O2 /Zi /MT " -o x64/Release/bandwidthTest.cu .obj "C:\ProgramData\NVIDIA 公司\CUDA Samples\v7.5\1_Utilities\bandwidthTest\bandwidthTest.cu"" 退出 代码 1。 ========== 构建:0 成功,1 失败,0 最新,0 跳过 ==========

我的环境变量是:

路径:

C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64;C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin;C:\Program Files\Microsoft Visual Studio 12.0\Common7\ IDE;C:\TDM-GCC-64\bin;C:\TDM-GCC-64\x86_64-w64-mingw32;C:\ProgramData\Oracle\Java\javapath;C:\Program 文件\NVIDIA GPU 计算工具包\CUDA\v7.5\bin;C:\Program 文件\NVIDIA GPU 计算工具包\CUDA\v7.5\libnvvp;c:\Program Files (x86)\Intel\iCLS 客户端\;c:\Program Files\Intel\iCLS 客户端\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;c:\Program 文件 (x86)\Hewlett-Packard\HP Performance Advisor;C:\Program 文件\英特尔\英特尔(R) 管理引擎组件\DAL;C:\Program 文件\英特尔\英特尔(R) 管理引擎组件\IPT;C:\Program Files (x86)\Intel\Intel(R) 管理引擎组件\DAL;C:\Program Files (x86)\Intel\Intel(R) 管理引擎组件\IPT;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL 服务器\100\DTS\Binn\;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Windows 工具包\8.1\Windows 性能工具包\;C:\Program 文件\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.0\;C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\;C:\Program Files\Microsoft SQL 服务器\110\DTS\Binn\;C:\Program Files (x86)\Microsoft SQL 服务器\110\Tools\Binn\ManagementStudio\;C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\;C:\Program 文件\R\R-3.1.3\bin\i386\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common

CUDA_PATH:

C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v7.5

CUDA_PATH_V7_5:

C:\Program Files\NVIDIA GPU 计算工具包\CUDA\v7.5

我也变了

INCLUDES += "-I$(TOP)/include" $(SPACE)

包括 += "-I$(TOP)/include" "-I$(TOP)/include/cudart" "-IC:/Program 文件 (x86)/Microsoft Visual Studio 12.0/VC/include" $(SPACE)

nvcc.profile 中。

但到目前为止还没有运气!! :( 请你帮助我好吗?! 谢谢

【问题讨论】:

  • 值得一提的是,我的机器上有 Visual Studio 2010、2012 和 2013。
  • 应该没问题,nvcc 使用在项目属性中设置的编译器工具集(你的情况是 vc120)

标签: windows visual-studio-2013 cuda


【解决方案1】:

问题

Visual Studio 编译器有以下几个版本:x86、x86_64 和 ARM 平台(我听说第四个版本即将推出)。

问题很可能是因为您正在为与PATH 中的编译器平台不同的平台进行编译。

解决方案

您的全局 PATH 变量中不应有 Visual Studio 的 bin 文件夹。

从您的PATH 中删除与 Visual Studio 相关的所有内容。 Visual Studio IDE 和 CUDA 工具足够智能,无需您的帮助(通过注册表项)即可找到编译器。

如果您想同时从命令行(不带 IDE)运行开发者工具,请使用:

  • 开始菜单中的 Visual Studio 命令提示符(使用 vcvarsall.bat 脚本)
  • 或直接使用vcvarsall.bat(临时设置环境以针对作为参数给出的平台进行构建)
  • 或推出您自己的脚本

【讨论】:

  • 感谢 Drop。我从 PATH 中删除了与 Visual Studio 相关的所有内容。但我仍然得到同样的错误......
  • 需要重启Visual Studio(程序启动时正在读取环境变量)
  • 我做了@Drop。我也重新启动了我的电脑。但我仍然收到错误
  • 嗯,这意味着错误的东西在某种程度上仍然在您的PATH 中。您应该设法删除它们。它与 VS 或 CUDA 并没有真正的关系。在普通的cmd.exe 控制台中尝试echo %PATH%。输出中不应有单词VisualStudio。试试cl,应该找不到。如果是,请尝试where cl。检查项目设置 -> VC++ 目录 -> 可执行目录。
  • 对我不起作用。我正在运行 CUDA 6.5 和 VS2013。 cl.exe 不在路径中。如果我删除属性中 cl.exe 所在的可执行目录,则 VS 找不到 cl.exe,我收到 MSB6003 错误。
【解决方案2】:

如果上述答案对您不起作用,以下是我使用 Visual Studio 2013 和 CUDA 6.5 进行 x64 编译的方法。

我编辑了

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\BuildCustomizations\CUDA 6.5.props

这样

<VCBinDir Condition="'$(Platform)' == 'Win32'">$(VC_ExecutablePath_x86_x86)</VCBinDir>
<VCBinDir Condition="'$(Platform)' == 'x64'">$(VC_ExecutablePath_x64)</VCBinDir>

【讨论】:

  • 但您还需要确保 PATH 指向正​​确的 MSVC 编译器。否则nvcc 会抱怨编译器的环境存在差异。简单来说,这意味着即使您设置了-ccbinnvcc 仍然会环顾四周,恕我直言,这是一种非常不受欢迎的行为。现在,通过在我的系统上搜索所有与 CUDA 相关的文件,找到 CUDA 8.0.props 文件(因为这是我正在使用的版本)后,我正在解决同样的问题。
【解决方案3】:

我有同样的问题,这个问题的关键原因是 cl.exe 的名称重复。我安装了 BullseyeCoverage(一种可以分析代码覆盖率的软件)。它有同名的cl.exe 程序。然后我卸载了,问题就解决了!

【讨论】:

  • 我遇到了这个确切的问题。我没有卸载 BullseyeCoverage,而是暂时将 Bullseye 目录重命名为其他目录。这有点小技巧,但它解决了我的问题。
猜你喜欢
  • 1970-01-01
  • 2020-06-16
  • 2017-04-12
  • 2016-09-19
  • 2012-08-20
  • 1970-01-01
  • 2010-10-05
  • 1970-01-01
  • 2016-03-20
相关资源
最近更新 更多