0

我在尝试使用 nvcc for cuda 编译我的程序时遇到问题。我使用 Visual Studio 2012 和 cuda 5.0。

当我以发布模式启动构建时,一切正常。

在调试模式下,我在第一个 .cu 文件的编译时收到以下错误消息:

nvcc:致命错误:指定输出文件时,非链接阶段需要单个输入文件

对于发布模式,我的命令行是:

C:\Users\Ernest\Documents\Matlab\icem\icem_cpp\cudaicem>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin\nvcc.exe" -gencode=arch=compute_13,code= \"sm_13,compute_13\" --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\v5.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\include" --keep-dir "x64\Release" -maxrregcount= 0 --ptxas-options=-v --machine 64 --compile -D_WINDLL -D_MBCS -Xcompiler "/EHsc /W3 /nologo /O2 /Zi /MD " -o "x64\Release\Icem.cu.obj" " C:\Users\Ernest\Documents\Matlab\icem\icem_cpp\cudaicem\Icem.cu"

对于调试模式:

C:\Users\Ernest\Documents\Matlab\icem\icem_cpp\cudaicem>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin\nvcc.exe" -gencode=arch=compute_13,code= \"sm_13,compute_13\" --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\v5.0\include" -I"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\include" -G --keep-dir "x64\Debug" - maxrregcount=0 --machine 64 --compile -g -D_ CUDACC_1 -D_WINDLL -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MDd " -o "x64\Debug\Icem.cu. obj" "C:\Users\Ernest\Documents\Matlab\icem\icem_cpp\cudaicem\Icem.cu"

你觉得第二个有什么问题吗?我没有看到多个输入文件!知道我可以测试什么吗?

4

1 回答 1

1

The answer was in the preprocessor options. -D_CUDACC_ 1 was the problem.

于 2013-04-19T08:11:55.660 回答