2013-04-18 17 views
0

我試圖用nvcc編譯cuda程序時出現問題。我使用Visual Studio 2012和cuda 5.0。nvcc無法在調試模式下編譯:需要單個文件

當我在發佈模式下啓動構建時,一切都很順利。

在調試模式下,我得到在編譯時出現以下錯誤消息我第一.CU文件:

NVCC:致命錯誤:一個單獨的輸入文件所需的非鏈接階段時OUTPUTFILE是指定

我的命令行爲,釋放模式:

C:\用戶\歐內斯特\文件\ Matlab的\ ICEM \ icem_cpp \ cudaicem>「C:\ Program Files文件\ NVIDIA GPU計算工具包\ CU DA \ v5.0 \ bin \ nvcc.exe「-gencode = arch = compute_13,code = \」sm_13,compute_13 \「--use-local-env --cl-version 2010 -ccbin」c:\ Program Files C:\ Program Files \ NVIDIA GPU計算工具包\ CUDA \ v5.0 \ include「-I」C:\ Program Files \ NVIDIA GPU計算工具包\ Microsoft Visual Studio 10.0 \ VC \ bin \ x86_amd64「-I」 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 /紫/ MD「-o 」64 \發佈\ Icem.cu.obj「 」C:\用戶\歐內斯特\文檔\ Matlab的\ ICEM \ icem_cpp \ cudaicem \ Icem.cu「

和調試模式:

C:\ Users \ Ernest \ Documents \ Matlab \ icem \ icem_cpp \ cudaicem> 「C:\ Program Files \ NVIDIA GPU計算工具包\ 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計算工具包\ CUDA \ v5.0 \ include」-I 「C:\ Program Files \ NVIDIA GPU計算工具包\ 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「

您是否發現第二個錯誤?我沒有看到多個輸入文件!任何想法我可以測試?

+3

'-D_CUDACC_ 1'是不是因爲這個?嘗試不用'1'。順便說一下,你爲什麼需要這個?通常這是由'nvcc'處理的。 – BenC 2013-04-18 11:47:50

+0

你釘了它,它在我的預處理器選項中,我不知道爲什麼我添加它,謝謝! – 2013-04-19 07:41:35

+0

是的,用'gcc'讀取Boost錯誤是一個很好的訓練,可以在混淆文本池中發現隨機錯誤。很高興我能幫助:o) – BenC 2013-04-19 08:41:10

回答

1

答案在預處理器選項中。 -D_CUDACC_ 1是問題所在。

相關問題