无法构建CUDA测试应用程序

时间:2013-01-15 11:31:05

标签: testing build cuda nvidia

目前正在关注Microsoft Windows [http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-microsoft-windows/index.html]的CUDA入门指南;安装CUDA;样本和NSight;我在Visual Studio 2010上;我检查了我的卡,它支持CUDA。我按照教程进行了演示部分...但是我收到以下错误消息:

=============================================== =====================================

1>CudaBuild:
1>  Compiling CUDA source file bandwidthTest.cu...
1>  
1>  C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.0\1_Utilities\bandwidthTest>"C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" -gencode=arch=compute_20,code=\"sm_20,compute_20\" -gencode=arch=compute_30,code=\"sm_30,compute_30\" -gencode=arch=compute_35,code=\"sm_35,compute_35\" --use-local-env --cl-version 2010 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin"  -I"./" -I"../../common/inc" -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 "Debug" -maxrregcount=0  --machine 32 --compile  -g   -DWIN32 -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MTd  " -o "Win32/Debug/bandwidthTest.cu.obj" "C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.0\1_Utilities\bandwidthTest\bandwidthTest.cu" 
1>  bandwidthTest.cu
1>C:/ProgramData/NVIDIA Corporation/CUDA Samples/v5.0/1_Utilities/bandwidthTest/bandwidthTest.cu(117): error : identifier "cin" is undefined
1>  
1>  1 error detected in the compilation of "C:/Users/James/AppData/Local/Temp/tmpxft_00001654_00000000-14_bandwidthTest.compute_35.cpp1.ii".
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\BuildCustomizations\CUDA 5.0.targets(592,9): error MSB3721: The command ""C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v5.0\bin\nvcc.exe" -gencode=arch=compute_10,code=\"sm_10,compute_10\" -gencode=arch=compute_20,code=\"sm_20,compute_20\" -gencode=arch=compute_30,code=\"sm_30,compute_30\" -gencode=arch=compute_35,code=\"sm_35,compute_35\" --use-local-env --cl-version 2010 -ccbin "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin"  -I"./" -I"../../common/inc" -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 "Debug" -maxrregcount=0  --machine 32 --compile  -g   -DWIN32 -D_MBCS -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MTd  " -o "Win32/Debug/bandwidthTest.cu.obj" "C:\ProgramData\NVIDIA Corporation\CUDA Samples\v5.0\1_Utilities\bandwidthTest\bandwidthTest.cu"" exited with code 2.
1>
1>Build FAILED.

=============================================== =====================================

我承认cin是iostream的一部分,我在我的代码中验证了它是我的include指令的一部分......

我来自网站开发人员的背景;我很少编程这些类型...

1 个答案:

答案 0 :(得分:2)

我假设您已经修改了bandwidthTest.cu文件,这不是vanilla SDK示例(因为快速检查显示默认情况下它不使用cin!)。

您需要使用std::cin明确说明范围,或者在文件顶部(包括iostream之后)或函数顶部添加using namespace stdusing std::cin

搜索有关命名空间的信息应该提供更多背景信息,例如this tutorial

如果这不是问题,请发布一些代码。

<强>更新

从您的评论来看,您真正的问题是如何在VS2010中创建CUDA项目。有关详细信息,请参阅this answer!基本上,您需要在项目中创建.cu文件,然后告诉Visual Studio如何处理它们(即启用构建自定义)。