已经是三月份了,想到毕设一个字还没写,顿时感觉到压力有点小大,其实重点是程序还没有搞出来。毕设的主要内容就是把ICA算法用CUDA并行实现一下,由于原来的系统是基于MFC的,这样就涉及到在MFC当中调用CUDA程序的问题,查阅了一下资料,顺便记录一下,其实主要涉及的是在VS这个集成的开发环境中如何自己设定编译器和编译规则的问题。
-
修改文件的编译链接设置
- 打开相应文件的属性设置窗口:

- 修改General中的Tool为Custom Build Tool(即为自定义生成工具),也就是自己指定编译器和生成规则,设置完毕后关闭属性窗口,再打开发现General底下的属性已经变成了Custom Build Step.
- 在Custome Build Step中需要设置Command Line和Outputs,如果存在编译依赖项也是需要设置Additional Dependencies的(视情况而定)。我这里的Command Line和Outputs设置如下(我的文件名为kernelIter.cu,具体的文件位置要根据自己的实际情况。如果你安装了CUDA程序生成向导,可以把生成向导生成的CUDA程序的Command Line拷贝过来,然后把文件名和位置替换下即可):
- Command Line:
"D:\program\cuda\toolkit\bin\nvcc.exe" -arch sm_10 -ccbin "C:\Program Files\Microsoft Visual Studio 9.0\VC\bin" -Xcompiler "/EHsc /W3 /nologo /Od /Zi /RTC1 /MTd " -I"D:\program\cuda\toolkit\include" -I"D:\program\cuda\NVIDIA GPU Computing SDK\C\common\inc" -maxrregcount=32 --compile -o "Release\kernelIter.cu.obj" "D:\研究生\毕设\project\ICA2011年5月13日\kernelIter.cu"
- Outputs:
$(IntDir)/$(InputName).cu.obj
- Command Line:
- 打开相应文件的属性设置窗口:
-
修改工程的编译链接设置(最好参考CUDA程序生成向导生成的CUDA程序,照着修改即可)
-
工程文件Property Pages->Configuration Properties->Linker->General
-
工程文件Property Pages->Configuration Properties->Linker->Input
-
工程文件Property Pages->Configuration Properties->Linker->General
总结,由于VS这个集成开发环境帮我们做了许多工作,所以借助于它进行开发时,我们对编译环境,依赖项等进行设置,为我们带来了许多便利,但是也致使我们对整个程序从源代码编写到编译到执行缺少足够的认识,所以有时候摆脱集成开发环境的束缚,一切从命令行开始还是很有必要的。
