Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ Visual Studio 2017不支持CUDA 9错误_C++_Visual Studio_Cuda - Fatal编程技术网

C++ Visual Studio 2017不支持CUDA 9错误

C++ Visual Studio 2017不支持CUDA 9错误,c++,visual-studio,cuda,C++,Visual Studio,Cuda,我最近更新了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

我最近更新了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样本构建和运行SimpleCfft

在更新之前,我能够构建默认的CUDA项目,但无法构建CUDA示例项目。我已经使用VS安装程序更新了我的VS2017,并安装了CUDA SDK 10.0.15063.0。附件是已安装组件的屏幕截图

如果需要其他信息,请告诉我。我知道这个主题,因为我使用的是最新的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
#if(如果)MSC_VER<1600 | | MSC_VER>1912

此错误不再显示,但是,文件类型_中会显示一组错误“表达式必须具有常量值”。我不知道如何解决它。

经过一段痛苦的时间,我终于解决了这个问题。对于那些有类似问题的人,以下是答案:

1) 确保您拥有VC++2015.3 v140工具集(可以从web或Visual Studio安装程序安装)

2) 在项目属性(常规)->平台工具集中,选择Visual Studio 2015(v140)


编辑(2018年5月21日):我刚刚将Visual studio 2017更新为最新版本15.7.1。从现在起,我可以选择VS 2017 v141工具集,它运行良好。

在VS update 15.4.3中,Microsoft将其CL编译器的版本号更新为14.12 ()

这就是为什么CUDA 9.0.176拒绝编译。 今天NVIDIA将CUDA更新为9.1.85,所以只需更新 只需将CUDA更新到9.1
我正在使用CUDA 9.2和VS 2017(版本15.7.5)。只需修改host_config.h(通常在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.*\include\crt下,可以在构建的VS输出中找到)就可以了

换线

#if _MSC_VER < 1600 || _MSC_VER > 1913
#if(如果)MSC_VER<1600 | | MSC_VER>1913

#if(如果)MSC_VER<1600 | | MSC_VER>1914

或者类似的,基于cl.exe的版本,对于阅读此问题的任何人,请在CUDA 10中更新。它是开箱即用的。不需要安装以前的编译器工具集和其他答案中提到的类似工具。只需下载CUDA 10,安装并卸载以前的CUDA版本。然后创建一个新的CUDA10项目并放置代码。它会起作用的


如果出现错误,请不要忘记在项目属性->CUDA C/C++->设备->代码生成中适当设置
compute_xx,sm_xx

微软已经发布了至少一个VS2017更新,该更新打破了CUDA 9。你可能是另一个人的受害者。你什么时候下载并安装了CUDA和VS以及这两个报告的确切版本?谢谢,我已经对我的帖子进行了编辑,有人正在使用VS2017和CUDA发布这两个版本的帖子。这两个版本不再有效,因为现在有了引入CL 19.12的VS 15.5.4,Nvidia需要尽快发布另一个更新,并使用最新的CUDA工具包(9.1.85)最新的Visual Studio 17版本,15.6.5仍然不起作用是的,这是一个很好的方法,但是如果您使用的功能仅在工具集v141中可用,并且需要CUDA,这不会有多大帮助。这是可行的,但是要编译示例解决方案中的162个项目,您需要使用“在文件中替换”工具将v141替换为c中*.vcxproj中的v140:\ProgramData\NVIDIA Corporation\CUDA Samples\v9.1\注意,如果使用cmake,可以指定-T v140来选择正确的平台工具包。有一种方法可以更改所有项目的此设置(共162个)快速从UI中选择解决方案。只需一次选择多个项目,然后右键单击项目属性,并按照上面的说明进行操作。您可以通过以下方式一次选择所有项目:1)ctrl-A 2)然后取消选择所有非项目(解决方案和文件夹)。您好,我使用的是CUDA 9.0,但它不起作用。它可能适用于CUDA 9.2。我稍后会检查它,并确认您是否仅更改了此项或其他内容。我这样问是因为我使用CUDA 9.2。但它仍然不起作用,只有这个。我认为您可以安全地删除第二部分“| | | | MSC_VER>1914”,因为vs 2017经常更新。现在,MSC版本应该已经是1915了,那么VisualStudio2019呢?
#if _MSC_VER < 1600 || _MSC_VER > 1914