2011-08-18 60 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在環境變量中。