最近一直在搞CUDA环境搭建,被一个问题困扰好久,终于找到了方法解决。发现没有一篇教程解决,网上大多数人建议都是下载VS2015或者以前版本的VS2017, 不要用最新版VS2017。但其实VS2017早就考虑到这些情况,可以通过简单一些的配置解决,所以写一篇教程,让大家少走点弯路。解决方法都不是我发现,我只是看到CSDN上没有,搬运了stackoverflow上的大牛的方法,希望可以帮到大家。
解决方法我是在
首先安装啥的一直参照着这篇教程
http://blog.csdn.net/ygjustgo/article/details/78883981
但是在2.(2)那一步利用VS编译测试文件一直出错,如下图
第一个问题
#error: -- unsupported Microsoft Visual Studio version! Only the versions 2012, 2013, 2015 and 2017 are supported!
这是由于CUDA文件定义不支持最新版VS2017,根据报错问题在host_config.h文件的135行
解决方案
打开文件路径 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\include\crt 中的 host_config.h 文件
发现133行对版本做了限制
将 _MSC_VER > 1911 中的 1911 改为 1920 (这个数字是我随便改的,理论上只要比你的版本高就行了)
再次编译
不支持VS2017的问题解决了,虽然出现了三十多个新的错误,接下来就是问题二了
问题二出现的原因我觉得是VS2017 v15.5.5编译方式代码格式什么的进行了大的更新导致不支持编译了
首先打开Visual Studio Installer
点击"修改"
点击"单个组件" -> "编译器、生成工具和运行时" -> "用于桌面的 VC++ 2015.3 v140 工具集(x86,x64)"
安装好了重新打开之前那个工程
按住ctrl多选选中我们需要的五个项目,然后右键打开"属性"
点击"常规" -> "常规" -> "平台工具集" 选择 "Visual Studio 2015 (v140)"
再次重新编译
成功了,按照教程运行那两个文件
应该没啥大问题了,主要就是需要修改支持版本号,然后更改编译工具,希望CUDA早日支持VS最新版本就不需要瞎折腾了