繁体   English   中英

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

[英]How can I change MSVC compiler version in a CMAKE project?

由于微软在14.29.30037版本中(再次)破坏了编译器(由于某种原因被 CMAKE 报告为19.29.30038.1 )( 看这里)我需要回到14.28.something 我已经通过 Visual Studio 安装程序下载了14.28.29910 ,我的Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC文件夹现在包含两个版本的文件夹。

但是我找不到强制 CMAKE 使用这个特定旧版本的方法。 我使用 CLion CMAKE 集成,我的设置如下所示。 工具链设置 设置

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

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

如果出于某种原因,我的任何一段代码可以帮助您回答这个问题,请在此处获得 repo

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

以下解决方案帮助了我:

  1. 在 Visual Studio 安装目录中找到vcvarsall.bat (我有Microsoft Visual Studio\\2019\\Professional\\VC\\Auxiliary\\Build\\vcvarsall.bat
  2. 运行vcvarsall.bat <your_arch> -vcvars_ver=<msvc_version> 在您的情况下,放置-vcvars_ver=14.28 <your_arch>示例是amd64 这将为所需的 MSVC 版本设置所有环境变量。
  3. 使用创建的环境从命令行启动 CLion。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM