[VS2019+CUDA] fatal error: #error: -- C1189: unsupported Microsoft Visual Studio version!

在运行一项Python程序时,出现了Microsoft Visual Studio version版本不支持的情况,具体如下:

C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.0includecrt/host_config.h(143): fatal error C1189: #error: – unsupported Microsoft Visual Studio version! Only the versions between 2013 and 2017 (inclusive) are supported!

先介绍一下我的环境情况:

  • Win 10
  • Visual Studio 2019
  • CUDA 10.0
  • cuDNN 7.6.4

查到的原因是CUDA版本需要与微软的C/C++编译器版本匹配,解决方法是找到你自己安装CUDA路径下的这个文件,我的如下:

C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.0includecrthost_config.h

打开后定位到这一行,修改 ‘_MSC_VER >=’ 后面的数值

至于_MSC_VER,它是微软公司推出的C/C++编译器在ANSI/ISO C99标准之外扩展的宏定义,用来定义当前微软公司自己的编译器的主版本。因为Visual Studio更新很快,其值不断更新,导致CUDA跟不上Visual Studio的步伐,所以出现上述错误。具体VS版本对应的_MSC_VER值可参考微软官方的资料----Click here

下表是截止到 2020/08/01 的 Visual Studio version 与 _MSC_VER 对应关系:

Visual Studio version_MSC_VER
Visual Studio 6.0 1200
Visual Studio .NET 2002 (7.0) 1300
Visual Studio .NET 2003 (7.1) 1310
Visual Studio 2005 (8.0) 1400
Visual Studio 2008 (9.0) 1500
Visual Studio 2010 (10.0) 1600
Visual Studio 2012 (11.0) 1700
Visual Studio 2013 (12.0) 1800
Visual Studio 2015 (14.0) 1900
Visual Studio 2017 RTW (15.0) 1910
Visual Studio 2017 version 15.3 1911
Visual Studio 2017 version 15.5 1912
Visual Studio 2017 version 15.6 1913
Visual Studio 2017 version 15.7 1914
Visual Studio 2017 version 15.8 1915
Visual Studio 2017 version 15.9 1916
Visual Studio 2019 RTW (16.0) 1920
Visual Studio 2019 version 16.1 1921
Visual Studio 2019 version 16.2 1922
Visual Studio 2019 version 16.3 1923
Visual Studio 2019 version 16.4 1924
Visual Studio 2019 version 16.5 1925
Visual Studio 2019 version 16.6 1926
Visual Studio 2019 version 16.7 1927

可以看到 1920 正好对应了Visual Studio 2019的第一个版本,为了“一劳永逸”,可以将文件中的那个值修改的很大,如上图中改为 2000,这样很长一段时间内不会再出现这个问题。

当然,你还可以选择安装 Visual Studio 2017。

原文地址:https://www.cnblogs.com/MK-XIAOYU/p/13413039.html