我使用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#。我确信我遗失的东西很小,但你能提供的任何线索都会受到赞赏。
答案 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位(交叉编译)示例。