【发布时间】:2021-09-06 08:02:04
【问题描述】:
由于微软(再次)破坏了版本14.29.30037中的编译器(由于某种原因被CMAKE报告为19.29.30038.1)(look here)我需要回到14.28.something。我已经通过 Visual Studio 安装程序下载了14.28.29910,我的Microsoft Visual Studio\2019\Community\VC\Tools\MSVC 文件夹现在包含两个版本的文件夹。
但是我找不到强制 CMAKE 使用这个特定旧版本的方法。我使用 CLion CMAKE 集成,我的设置如下所示。
请注意,我已经尝试将 Make、C Compiler 和 C++ Compiler 路径设置为旧编译器中的对应路径。这导致 CMAKE 报告所需的 19.28.29915.0 编译器版本(顺便说一下,喜欢微软使用的不同版本控制约定的数量)。尽管如此,当我尝试构建项目时,我得到以下信息:
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.29.30037\include\yvals_core.h(541): fatal error C1189: #error: STL1001: Unexpected compiler version, expected MSVC 19.29 or newer.
NMAKE : fatal error U1077: 'C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\1428~1.299\bin\HostX86\x64\cl.exe' : return code '0x2'
Stop.
我猜这意味着并非编译器的所有部分(在这种情况下包括一些)都切换到旧版本。
如果出于某种原因,我的任何代码可以帮助您回答这个问题,则可以使用该 repo here
还请注意,尽管我很想简单地切换到 GCC,但由于 Windows 上的 CUDA 支持,我不能。我也不能使用不同的(旧)Visual Studio 版本,因为该项目需要 C++ 20。另外,还有一个额外的问题:像微软这样相关的公司怎么可能从字面上破坏企业级开发工具?
【问题讨论】:
-
您是否尝试过 CLion 中的“工具->CMake->重置缓存并重新加载项目”?