编译CUDA示例会产生构建错误

时间:2010-01-05 13:54:30

标签: c++ visual-studio-2008 cuda

我使用Visual Studio 2008运行Windows 7 64位。我安装了CUDA驱动程序和SDK。 SDK附带了很多示例,包括已编译的可执行文件和源代码。编译后的可执行文件运行得非常好。当我打开vc90解决方案并开始构建Win32配置时,我收到此错误:

Error   1   fatal error LNK1181: cannot open input file '.\Release\bandwidthTest.cu.obj'    bandwidthTest   bandwidthTest

构建日志:

1>------ Build started: Project: bandwidthTest, Configuration: Release Win32 ------
1>Compiling with CUDA Build Rule...
1>"C:\CUDA\bin64\nvcc.exe"    -arch sm_10 -ccbin "c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin"    -Xcompiler "/EHsc /W3 /nologo /O2 /Zi   /MT  " -I"C:\CUDA\include" -I"../../common/inc" -maxrregcount=32  --compile -o "Release\bandwidthTest.cu.obj" "c:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\src\bandwidthTest\bandwidthTest.cu" 
1>nvcc fatal   : Visual Studio configuration file '(null)' could not be found for installation at 'c:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/bin/../..'
1>Linking...
1>LINK : fatal error LNK1181: cannot open input file '.\Release\bandwidthTest.cu.obj'
1>Build log was saved at "file://c:\ProgramData\NVIDIA Corporation\NVIDIA GPU Computing SDK\C\src\bandwidthTest\Release\BuildLog.htm"
1>bandwidthTest - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

如果我尝试在x64中编译它根本不构建并且只是跳过项目

1>------ Skipped Build: Project: bandwidthTest ------
1> 
========== Build: 0 succeeded or up-to-date, 0 failed, 1 skipped ==========

我是C ++的新手,已经做了一段时间的C#。我确信我遗失的东西很小,但你能提供的任何线索都会受到赞赏。

3 个答案:

答案 0 :(得分:2)

检查是否安装了x64编译器。然后将项目类型更改为x64。尝试使用64位win7编译32位cuda程序时遇到了同样的问题。

还要确保已将64位库添加到搜索路径中。

答案 1 :(得分:2)

您专注于错误的错误消息。

.obj文件不存在,因为nvcc编译步骤失败。

nvcc fatal   : Visual Studio configuration file '(null)' could not be found for installation at 'c:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/bin/../..'

答案 2 :(得分:1)

您需要确保所有工具都匹配。因此,如果安装了64位Visual Studio编译器,则应安装64位版本的CUDA工具包。

如果您只有32位Visual Studio编译器,那么您应该能够安装32位CUDA工具包。理想情况下,您将安装所有64位工具。然后,您将能够构建64位和32位(交叉编译)示例。