我最近更新了我的VS 2017,现在我甚至无法构建默认的CUDA项目(添加了矢量的项目)。
我怀疑这是由于以下错误造成的:
Severity Code Description Project File Line Suppression State
Error C1189 #error: -- unsupported Microsoft Visual Studio version!
Only the versions 2012, 2013, 2015 and 2017 are supported! ver2
c:\program files\nvidia gpu computing
toolkit\cuda\v9.0\include\crt\host_config.h 133
其他错误无关紧要,一旦我解决了这个错误就会消失。请注意,我能够从CUDA样本构建并运行simpleCUFFT。
在更新之前,我能够构建默认的CUDA项目,但是我无法构建CUDA Sample项目。我使用VS安装程序更新了我的VS2017并安装了CUDA SDK 10.0.15063.0。附件是带有已安装组件的屏幕截图。
如果需要任何其他信息,请与我们联系。我知道following主题,因为我使用的是最新的CUDA工具包,所以我不需要在host_config.h中进行更改。
谢谢, 米哈伊尔
编辑: 我的VS版本(在VS安装程序中显示)是15.5.0 我的nvcc版本是9.0版,V9.0.176
Edit2:我试图将host_config.h第133行更改为:
#if _MSC_VER < 1600 || _MSC_VER > 1912
此错误不再显示,但是,一堆错误&#34;表达式必须具有常量值&#34;显示在文件type_trails中。我不知道如何解决它。
答案 0 :(得分:19)
经历了一段痛苦的时光后,我才得以解决问题。以下是有类似问题的人的答案:
1)确保您拥有VC ++ 2015.3 v140工具集(可以从Web或Visual Studio安装程序安装)
2)在项目属性(一般)中 - &gt;平台工具集选择Visual Studio 2015(v140)。
编辑(5/21/2018):我刚刚将Visual Studio 2017更新到最新版本15.7.1。从现在开始,我可以选择VS 2017 v141工具集,它运行正常。
答案 1 :(得分:2)
在VS更新15.4.3中,Microsoft将其CL编译器的版本号更新为14.12 (https://www.visualstudio.com/ru-ru/news/releasenotes/vs2017-relnotes#15.4.4)
这就是CUDA 9.0.176拒绝编译的原因。 今天NVIDIA将CUDA更新到9.1.85,所以只需更新 只需将CUDA更新为9.1 https://developer.nvidia.com/cuda-downloads
答案 2 :(得分:2)
我正在使用CUDA 9.2和VS 2017(版本15.7.5)。只需修改host_config.h(通常在 C:\ Program Files \ NVIDIA GPU Computing Toolkit \ CUDA \ v9。* \ include \ crt下,即可在build的VS输出中找到)对我有用。
更改行
#if _MSC_VER < 1600 || _MSC_VER > 1913
到
#if _MSC_VER < 1600 || _MSC_VER > 1914
或类似的东西,基于cl.exe的版本
答案 3 :(得分:1)
对于正在阅读此问题的任何人,请在CUDA 10中进行更新。它可以直接使用。无需安装以前的编译器工具集以及其他答案中提到的类似工具。只需下载CUDA 10,安装并卸载以前的CUDA版本即可。然后创建一个新的CUDA 10项目并放置您的代码。它会工作。
如果遇到错误,请不要忘记在项目属性-> CUDA C / C ++->设备->代码生成中适当设置compute_xx,sm_xx
。