zoukankan      html  css  js  c++  java
  • [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。

  • 相关阅读:
    简单字符串处理应避免使用正则表达式
    提高正则表达式的可读性
    用零宽度断言匹配字符串中的特定位置
    避免不必要的回溯
    预编译正则表达式
    用Text::CSV_XS模块处理csv文件
    Ack 类似grep一样的查找
    Apache压力测试
    仅编译正则表达式一次
    排序上下箭头的是实现
  • 原文地址:https://www.cnblogs.com/MK-XIAOYU/p/13413039.html
Copyright © 2011-2022 走看看