Visual studio 2012 在VS2012中编译cuda:致命错误C1083:无法打开编译器生成的文件,没有此类文件或目录

Visual studio 2012 在VS2012中编译cuda:致命错误C1083:无法打开编译器生成的文件,没有此类文件或目录,visual-studio-2012,cuda,Visual Studio 2012,Cuda,我已经安装了Visual Studio 2012和CUDA 6.0工具包。我可以启动一个新项目并选择CUDA6.0运行时,但当我尝试编译时,它显然找不到目标文件 这是创建CUDA项目时出现的示例代码的输出,尽管我遇到了相同的问题,即使它只是一个没有任何CUDA语法的普通C程序 以下是我在构建kernel.cu时得到的完整输出: 1>------ Build started: Project: Temp, Configuration: Debug Win32 ------ 1>Buil

我已经安装了Visual Studio 2012和CUDA 6.0工具包。我可以启动一个新项目并选择CUDA6.0运行时,但当我尝试编译时,它显然找不到目标文件

这是创建CUDA项目时出现的示例代码的输出,尽管我遇到了相同的问题,即使它只是一个没有任何CUDA语法的普通C程序

以下是我在构建kernel.cu时得到的完整输出:

1>------ Build started: Project: Temp, Configuration: Debug Win32 ------
1>Build started 08/06/2014 13:14:40.
1>PrepareForBuild:
1>  Creating directory "d:\my documents\visual studio 2012\Projects\Temp\Debug\".
1>InitializeBuildStatus:
1>  Creating "Debug\Temp.unsuccessfulbuild" because "AlwaysCreate" was specified.
1>CudaBuild:
1>  Compiling CUDA source file kernel.cu...
1>  
1>  D:\Programming>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env --cl-version 2012 -ccbin "D:\Programs\VC\bin"  -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include"  -G   --keep-dir Debug -maxrregcount=0  --machine 32 --compile -cudart static  -g   -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MDd  " -o Debug\kernel.cu.obj "d:\my documents\visual studio 2012\Projects\Temp\Temp\kernel.cu" 
1>nvcc : warning : The 'compute_10' and 'sm_10' architectures are deprecated, and may be removed in a future release.
1>  kernel.cu
1>C:\Users\Mort\AppData\Local\Temp\tmpxft_00001d3c_00000000-20_kernel.ii : fatal error C1083: Cannot open compiler generated file: 'Debug/kernel.cu.obj': No such file or directory
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\BuildCustomizations\CUDA 6.0.targets(597,9): error MSB3721: The command ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env --cl-version 2012 -ccbin "D:\Programs\VC\bin"  -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v6.0\include"  -G   --keep-dir Debug -maxrregcount=0  --machine 32 --compile -cudart static  -g   -DWIN32 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MDd  " -o Debug\kernel.cu.obj "d:\my documents\visual studio 2012\Projects\Temp\Temp\kernel.cu"" exited with code 1.
1>
1>Build FAILED.
1>
1>Time Elapsed 00:00:03.36
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
我正在运行Win7 64位和VS 2012 Ultimate


谢谢

我这样回答是因为它解决了您的问题:NVCC的路径(
D:\Programming
)和您的项目路径之间似乎不匹配


您可能会在错误的目录中编译东西,然后找不到前一阶段创建的临时目录。请确保修复这些路径,编译应该可以正常进行,因为其他所有路径都匹配(即比特/包含路径)

您可以再次检查nvcc编译obj文件的路径吗?项目路径和nvcc的路径(“D:\Programming”)可能不匹配,我不知道nvcc从哪里获得D:\Programming,这是我多年前使用的一个旧目录;几天前我刚刚安装了VS和Cuda,但从未将它们指向那个目录,所以一定有什么旧的东西卡在了那个目录里。您能告诉我如何查找/更改nvcc编译路径吗?好的,所以我在注册表中搜索了D:\Programming,找到了一些我设置的键,我想命令提示符默认设置为该目录。我删除了那些键,现在一切都正常了。感谢您指出这一点,否则我不会想到去寻找。很高兴我提供了帮助,我将给出一个答案,这样其他人可能会从中受益。@user3511582您将命令提示符默认设置为哪个目录?我以前把它设为D:\现在面临同样的问题。我将其默认设置为C驱动器,但仍然不工作。