Win10 + VS2017 v15.5.5 + CUDA9.1.85,CUDA Samples无法编译通过解决办法
2018-01-31 19:16
489 查看
最近一直在搞CUDA环境搭建,被一个问题困扰好久,终于找到了方法解决。发现没有一篇教程解决,网上大多数人建议都是下载VS2015或者以前版本的VS2017, 不要用最新版VS2017。但其实VS2017早就考虑到这些情况,可以通过简单一些的配置解决,所以写一篇教程,让大家少走点弯路。解决方法都不是我发现,我只是看到CSDN上没有,搬运了stackoverflow上的大牛的方法,希望可以帮到大家。
解决方法我是在
首先安装啥的一直参照着这篇教程
http://blog.csdn.net/ygjustgo/article/details/78883981
但是在2.(2)那一步利用VS编译测试文件一直出错,如下图
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/c4ff7c509cc9cbc7bf1a18034a180893)
第一个问题
这是由于CUDA文件定义不支持最新版VS2017,根据报错问题在host_config.h文件的135行
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/91181e53204f62f0d6729241aac1679f)
解决方案
打开文件路径 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\include\crt 中的
host_config.h 文件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/ac9a0a7a0faf1348a162da4829a2d0fd)
发现133行对版本做了限制
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/37c5e8c231bac460f5083d869d9171eb)
将 _MSC_VER > 1911 中的 1911 改为 1920 (这个数字是我随便改的,理论上只要比你的版本高就行了)
再次编译
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/b9d0fa691d1e74055a8b8c32aefc26a3)
不支持VS2017的问题解决了,虽然出现了三十多个新的错误,接下来就是问题二了
问题二出现的原因我觉得是VS2017 v15.5.5编译方式代码格式什么的进行了大的更新导致不支持编译了
首先打开Visual Studio Installer
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/e65714410741a8debfb4d88682a2876f)
点击"修改"
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/6413e31cd4d88cf146b74891ac5698f3)
点击"单个组件" -> "编译器、生成工具和运行时" -> "用于桌面的 VC++ 2015.3 v140 工具集(x86,x64)"
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/11f987f9680872e53867c15dc8520381)
安装好了重新打开之前那个工程
按住ctrl多选选中我们需要的五个项目,然后右键打开"属性"
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/707166c01643ebb5802258f924549ab0)
点击"常规" -> "常规" -> "平台工具集" 选择 "Visual Studio 2015 (v140)"
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/4bff7f10ade70bfcd95208e66321709a)
再次重新编译
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/22c71a6ccb78af825b41f3d17071f09e)
成功了,按照教程运行那两个文件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/5a9b4aa88a9a90086c3f2f2772435237)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202009/06/3985f690678189f64ece80db27ac99ff)
应该没啥大问题了,主要就是需要修改支持版本号,然后更改编译工具,希望CUDA早日支持VS最新版本就不需要瞎折腾了
解决方法我是在
首先安装啥的一直参照着这篇教程
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最新版本就不需要瞎折腾了
相关文章推荐
- MyEclipse中编写的java源文件无法再cmd下编译通过解决办法
- 遇到WinEdt中文无法编译通过或无法显示的解决办法
- Cocos2d-x for win8 编译通过,无法运行的解决办法
- Win10 HOSTS锁定 无法提权 修改 解决办法 100%有效
- 致命错误:“无法编译样式表” 解决办法
- vs2017 编译webrtc warning C4005: “AF_IPX”: 宏重定义的解决办法
- androidStudio 中文编译错误: GBK 的不可映射字符。(针对网上通用资料无法解决办法)
- 运行VS可执行文件 360提示有菠萝影音插件想要捆绑 导致程序无法正常编译和运行解决办法
- SharePoint Host Header输入用户名密码无法通过验证的解决办法
- 部分三方库在64bit下无法编译问题解决办法
- Win10解决校园网上VMware无法联网的办法
- 【Cocos2d-X(1.x 2.x) 修复篇】iOS6 中 libcurl.a 无法通过armv7s编译以及iOS6中无法正常游戏横屏的解决方法
- 【Cocos2d-X(1.x 2.x) 】iOS6与iphone5适相关设置随笔(解决第三方类库无法通过armv7s编译的方法、添加Default-568h@2x.png)
- VS2008下最新X264(svn 2009.0216)编译不过的解决办法(附编译通过+修改内存泄露版本)
- SecureCRT无法通过SSHD连接linux的解决办法
- 无法通过百度联盟申请的常见原因分析及解决办法
- 解决@selector无法传参的办法,通过tag标记传递更多数据
- Eclipse下无法自动编译,或者WEB-INF/classes目录下没文件,编译失败的解决办法
- maven无法对src/main/java下面的xml文件进行编译的解决办法
- Eclipse下无法自动编译,或者WEB-INF/classes目录下没文件,编译失败的解决办法