2017-03-04 486 views
-3

我的Visual Studio 2015和最新的CUDA版本(8.0.60) 當我創建Vs的CUDA模板,在默認情況下例如呼叫裝置功能的提示錯誤「時< < < >> >」,說的‘預期的表達’ 和另一個錯誤是MSB3721該說的MSB3721錯誤1

嚴重性代碼說明項目文件的線路抑制狀態 錯誤MSB3721命令‘’C:\ Program Files文件\ NVIDIA GPU計算工具包\ CUDA \ v8.0 \ bin \ nvcc.exe「-gencode = arch = compute_20,code = \」sm_21,compute_20 \「--use-local-env --cl-version 2015 -ccbin」D:\ Program Files(x86 )\ MICR osoft Visual Studio 14.0 \ VC \ bin \ x86_amd64「-I」C:\ Program Files \ NVIDIA GPU計算工具包\ CUDA \ v8.0 \ include「-I」C:\ Program Files \ NVIDIA GPU計算工具包\ CUDA \ v8 .0 \ include「--keep-dir x64 \ Debug -maxrregcount = 0 --machine 64 --compile -cudart static -g -DWIN32 -DWIN64 -D_DEBUG -D_CONSOLE -D_MBCS -Xcompiler」/ EHsc/W3/nologo/Od/x86 \ Debug \ kernel.cu.obj「D:\ C++ project \ xhfy \ xhfy \ kernel.cu」「退出,代碼爲1. xhfy C:\ Program Files(x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V140 \ BuildCustomizations \ CUDA 8.0.targets 689

我該怎麼辦?

+3

MSB3721錯誤是一個通用錯誤。這意味着以前的nvcc編譯命令失敗,但不會告訴你爲什麼。要發現原因,您需要查看該點之前的實際nvcc錯誤報告,或者增加您的VS詳細程度並重新編譯,直到在MSB3721錯誤之前看到nvcc實際錯誤輸出。關於「<<< > >>」錯誤,這可能只是智能。谷歌「CUDA紅色下劃線」 –

+0

我做了你所說的,在這裏得到的結果是:'nvcc fatal:PATH中編譯器'cl.exe'與-ccbin'指定的不同' –

+2

PATH環境變量必須與你的VS安裝相匹配。如果您安裝了2013和2015兩種版本,則需要進行一些更改。在這種情況下,您的PATH看起來似乎是2013年設置的,但您正在使用VS 2015,因此未更新PATH。正如您在回答中所述,通過切換到VS 2013工具集,爲ccv選項指定了一個不同的'cl.exe'作爲'nvcc',這顯然與您的PATH變量相匹配。 –

回答

3

我將我的平臺工具集更改爲visual studio 2013並啓動了