如何在 CMAKE 项目中更改 MSVC 编译器版本?

问题描述

由于微软在版本 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 集成,我的设置如下所示。

toolchain settings

cmake settings

请注意,我已经尝试将 MakeC CompilerC++ 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.

我想这意味着并非编译器的所有部分(在本例中包括一些)都切换到旧版本。

如果出于某种原因,我的任何一段代码可以帮助您回答这个问题,那么该存储库可用 here

另请注意,尽管我很想简单地切换到 GCC,但由于 Windows 上的 CUDA 支持,我不能。我也不能使用不同的(旧的)Visual Studio 版本,因为该项目需要 C++ 20。另外,额外的问题:像微软这样相关的公司怎么可能真的破坏企业级开发工具?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)