[VS2019+CUDA] fatal error: #error: -- C1189: unsupported Microsoft Visual Studio version!
在运行一项Python程序时,出现了Microsoft Visual Studio version版本不支持的情况,具体如下:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include\crt/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 Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include\crt\host_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。