2011-08-18 109 views
2

因为我在Nvidia forums没有得到任何帮助(看我的帖子底部的线程),似乎我不是唯一一个struggeling类似的问题,我会试试这里。CUDA 4.0与Visual Studio 2010 CL编译器错误

我试着编译Cuda SDK 4.0的例子,以及非常好的tutorial by Ade Miller。但编译“.cu”文件将不起作用。

这是(示范)命令编译器调用:

"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\bin\nvcc.exe" 
-gencode=arch=compute_10,code=\"sm_10,compute_10\" --use-local-env 
--cl-version 2010 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC bin\x86_amd64" 
-I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v4.0\include" -G0 
--keep-dir "x64\Debug" -maxrregcount=0 --machine 64 --compile -D_NEXUS_DEBUG 
-g -Xcompiler "/EHsc /nologo /Od /Zi /MDd " -o "x64\Debug\Hello.cu.obj" 
"D:\Code\CUDA\Test_Cuda_4_0\Test_Cuda_4_0\Hello.cu" 

这是奇怪的错误消息,我总是得到。

nvcc fatal : Compiler 'cl' in PATH different than the one specified with -ccbin 

编辑:要多一点精确:Visual Studio的只是告诉我的命令没有成功(“退出代码-1”) - >看到这个错误信息我必须调用命令我自己在命令行中。

1)为什么nvcc关心环境变量中的路径与命令行选项指定的路径不同?如果它会照顾,这不会使命令行选项完全无用吗?

2)如何解决;)?

我用的Win7 64位,VS2010 SP1教授,和下面的NVIDIA版本: cudatoolkit_4.0.17_win_64 devdriver_4.0_winvista-win7_64_270.81_general gpucomputingsdk_4.0.19_win_64

非常感谢您的帮助!

+0

win32目标构建好吗?您添加x64目标时做了哪些更改?公平的你不是唯一的,但许多人从未在同一个平台(包括我)看过这个,所以只是想获得更多的信息。 – Tom

+0

Win32构建也不起作用。对于64位版本,我刚刚在配置属性(Cuda c/C++ - >目标机器平台)中添加了(参见Ade Miller的教程)'64 -bit(--machine 64)'。 –

回答

1

尝试使用传统方法开始编写CUDA程序,如“入门指南”(复制样本)中所述。要解决上述问题,您必须将其添加为环境变量。但由于SDK样本已经链接,所以它们不会产生问题。

+0

正如我所说的,当我尝试编译SDK示例时遇到同样的错误。 开始时,我完全遵循我在C:\ ProgramData \ NVIDIA Corporation \ NVIDIA GPU Computing SDK 4.0 \ C \ doc \ CUDA_C_Getting_Started_Windows.pdf下找到的“入门指南”。在“编译其中一个SDK样本”的阶段,我遇到了上面报告的错误。 –

+0

其实,即使我从cmd编译出现这个错误,但它在vs2010中工作正常。你有没有考虑重新安装SDK和工具包? – nouveau

0

我有一个类似的问题。以前我复制cl.exeC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\binnvcc.exe测试几个参数,并忘记从这个目录中删除此文件。我删除了这个文件,一切正常。 PATH的目的对于我的问题确实是为了这个路径:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin而不是PATH在环境变量中。