MSVC设置版本

MSVC设置版本

在开发QT时,由于QT 5.12MSVC 2017兼容,因此需要用MSVC 2017来编译使用QT 5.12的程序。

1 安装MSVC 2017

由于笔者电脑上安装的Visual Studio版本为Visual Studio 2022,缺少MSVC 2017,因此需要先安装MSVC 2017

首先打开Visual Studio Installer,对以安装的Visual Studio程序点击修改,在单个组件中搜索msvc。在搜索结果中勾选MSVC v141 - VS 2017 C++ x64/x86生成工具(v14.16),并进行安装即可。

2 设置MSVC版本

设置MSVC版本需要使用脚本vcvarsall.bat进行,此脚本的路径一般为:C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat,此脚本的原理是该脚本会配置MSVC相关的一些环境变量。

cmd中执行如下命令:

> .\vcvarsall.bat

会输出脚本的使用方法:

Syntax:
    vcvarsall.bat [arch] [platform_type] [winsdk_version] [-vcvars_ver=vc_version] [-vcvars_spectre_libs=spectre_mode]
where :
    [arch]: x86 | amd64 | x86_amd64 | x86_arm | x86_arm64 | amd64_x86 | amd64_arm | amd64_arm64
    [platform_type]: {empty} | store | uwp
    [winsdk_version] : full Windows 10 SDK number (e.g. 10.0.10240.0) or "8.1" to use the Windows 8.1 SDK.
    [vc_version] : {none} for latest installed VC++ compiler toolset |
                   "14.0" for VC++ 2015 Compiler Toolset |
                   "14.xx" for the latest 14.xx.yyyyy toolset installed (e.g. "14.11") |
                   "14.xx.yyyyy" for a specific full version number (e.g. "14.11.25503")
    [spectre_mode] : {none} for libraries without spectre mitigations |
                     "spectre" for libraries with spectre mitigations

The store parameter sets environment variables to support Universal Windows Platform application
development and is an alias for 'uwp'.

For example:
    vcvarsall.bat x86_amd64
    vcvarsall.bat x86_amd64 10.0.10240.0
    vcvarsall.bat x86_arm uwp 10.0.10240.0
    vcvarsall.bat x86_arm onecore 10.0.10240.0 -vcvars_ver=14.0
    vcvarsall.bat x64 8.1
    vcvarsall.bat x64 store 8.1

Please make sure either Visual Studio or C++ Build SKU is installed.

注意:

脚本中所说明的Windows SDK版本和MSVC版本均需要结合自己电脑来填写,以下示例仅为笔者电脑中的版本号,不一定适用于所有读者。请仔细阅读脚本说明。Windows SDK版本号可以在已安装程序列表中查看,本例中为10.0.22000.0;MSVC版本号可以在Visual Studio Installer安装组件时勾选的组件后面的小括号中有注明,本例中为14.16。

MSVC编译器的安装路径为C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC,此路径下的文件夹名也代表MSVC编译器的版本。笔者在此目录下有两个文件夹分别为14.16.2702314.34.31933,说明笔者安装了14.1614.34两个版本的MSVC编译器。

仔细阅读说明后,我们可以使用如下命令为MSVC编译器设置版本:

> call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64 10.0.22000.0 -vcvars_ver=14.16

然后在命令行中调用MSVC编译器查看其版本:

> cl.exe

输出信息为

Microsoft (R) C/C++ Optimizing Compiler Version 19.16.27048 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: cl [ option... ] filename... [ /link linkoption... ]

同理,我们可以使用如下设置命令将MSVC编译器设置为另一个版本:

> call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64 10.0.22000.0 -vcvars_ver=14.16

然后在命令行中调用MSVC编译器查看其版本是否发生变化:

> cl.exe

输出信息为

Microsoft (R) C/C++ Optimizing Compiler Version 19.34.31937 for x64
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: cl [ option... ] filename... [ /link linkoption... ]

对比发现MSVC编译器的版本确实发生了变化。

注意:

必须要在cmd使用以上命令调用脚本,在powershell中无效。

3 实际应用

在实际应用中,我们需要先打开cmd,使用以上命令调用脚本设置合适的编译器版本后,再从cmd中启动IDE(如clion、vscode),再进行开发即可。

在cmake config时会输出MSVC版本号,我们可以确认是否设置正确。

此外,可以用以下代码输出MSVC版本号:

#include <iostream>
int main(int argc, char *argv[]) {
    std::cout << _MSC_VER << std::endl;  // 此例中会输出1916或1934
    return 0;
}
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你需要卸载旧的MSVC并安装新版本时,以下是一个可能的步骤: 1. 首先,确保你已经备份了所有重要的项目和文件。 2. 打开控制面板,找到并点击“程序和功能”或“应用程序”选项。 3. 在安装的程序列表中,找到旧版本MSVC并选择卸载。按照提示完成卸载过程。 4. 访问微软的官方网站https://visualstudio.microsoft.com/zh-hans/vs/,点击下载按钮来获取新版本MSVC。 5. 在下载页面中,选择你需要的版本(比如VS2015),并下载对应的安装程序。 6. 运行下载的安装程序,并按照提示进行安装。确保你选择了需要的组件,包括Visual C++库的运行时组件和生成工具。 7. 完成安装后,重新启动计算机。 8. 如果你使用的是Qt,打开Qt系统设置,检查编译环境是否正确识别。如果没有自动识别,可以手动设置正确的编译器路径。 9. 现在你应该已经成功卸载了旧版本MSVC并安装了新版本。 请注意,这只是一个大致的步骤指导,实际操作可能会有所不同。在进行任何卸载和安装操作之前,请确保你已经备份了重要的文件,并在操作过程中小心谨慎。参考中提到的链接和中的相关文章可以提供更详细的操作指南和注意事项。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [win安装qt卸载后又安装,又安装msvc导致qt环境无法自动识别问题解决方案](https://blog.csdn.net/weixin_42513036/article/details/111983439)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [Cmake卸载与安装](https://blog.csdn.net/weixin_33566282/article/details/114001656)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值