今天搞了一天cuda的配置,虽然耗的时间有点长,但是结果是好的,发现了最终的问题。

按照Openhero先生的CUDA easy start up进行配置,感觉很简单,但总是出现错误

 fatal error LNK1181: cannot open input file '.\debug\deviceQuery.obj'


最终发现问题是这样的。我在安装vs的时候,特意选择了D:,就是这个选择造成了错误。VC中有两个Marco,分别是 VSInstallDir和VCInsallDir,在我的系统里,这两个宏代表的路径如下:

 VSInstallDir=D:\Program Files\Microsoft Visual Studio .NET 2003\

VCInstallDir=C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\

这肯定是我安装VS时造成的问题。

而在打开CUDA SDK的Projects里的project时,*.cu文件的属性的Command Line里默认设置的是-ccbin "$(VCInstallDir)bin",而所需要的文件在

D:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin

这个目录下,当然找不到文件,所以有编译错误

我将 "$(VCInstallDir)bin"改为"$(VSInstallDir)vc7/bin",就好了。全部设置如下:

"$(CUDA_BIN_PATH)\nvcc.exe" -ccbin "$(VSInstallDir)vc7/bin" -c -D_DEBUG -DWIN32 -D_CONSOLE -D_MBCS -Xcompiler /EHsc,/W3,/nologo,/Wp64,/Od,/Zi,/RTC1,/MTd -I"$(CUDA_INC_PATH)" -I./ -I"($NVSDKCUDA_ROOT)/common/inc" -o $(ConfigurationName)/deviceQuery.obj deviceQuery.cu

 

注:

1.OpenHero 先生还有一个视频,教你配置CUDA,很简单,很好。初学者可以参考。

2.在查看vs的Macro的时候,我在网上看到有人教你用这样的方式

   打开VS的命令行,输入set,回车,就看到了。但我发现这和VC最终使用的不一样。

   所以最好还是在查看cu文件的属性的command line时,直接点击下面的macro按钮,这样看到的macro是最准确的。

3.在查找这个问题时,因为在IDE里什么也看不到,我最后使用命令行,转移到项目所在目录,运行上面的配置,当然,VSInstallDir和ConfigurationName这些宏是VC自己配的,命令行不认识。所以把他们替换成真实路径。最终找到了问题。这种方法值得借鉴。

posted on 2009-11-21 22:11  cinger  阅读(1278)  评论(0编辑  收藏  举报