首页 > 其他分享 >MSVC设置版本

MSVC设置版本

时间:2023-02-05 18:55:49浏览次数:46  
标签:vcvarsall bat 版本 Visual Studio 设置 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;
}

标签:vcvarsall,bat,版本,Visual,Studio,设置,MSVC
From: https://www.cnblogs.com/yann-qu/p/17093783.html

相关文章

  • css box-shadow单边阴影设置
    box-shadow参数说明box-shadow:h-shadowv-shadowblurspreadcolorinset h-shadow(X轴)必需第一个长度值指明了阴影水平方向的偏移,即阴影在x轴的位置。值为正数时......
  • pycharm个性化设置操作演示
    2023-02-0512:34:07星期日设置需求:PyCharm显示当前python文件下的函数和类的列表教程来袭请看如下图与项目目录平行位置>>>找到齿轮>>>鼠标左键>>>给showmembers......
  • 百度信息流推广定向设置经验
    百度信息流推广之基础定向。基础定向主要通过以下属性进行定向:地域、年龄、性别、人生阶段、学历,一般来说我们可以通过用户使用产品场景以及产品定位来反推,大限度保证投放......
  • Debian 11 基本设置
    设置开机等待时间/boot/grub/grub.cfg86行settimeout=0允许root远程登录将PermitRootLogin设置为yesPasswordAuthentication设置为yes即可图形界面切换到字符界面第1步:v......
  • idea设置字体大小(换主题后的字体大小设置)
    如果你是默认主题直接这样设置字体大小如果你换了自定义主题如果你换了自定义主题,那么上面的设置方法会没有作用,我们需要像下面这样设置:......
  • 写sql的这样子这样子的设置的话,timestamp (2023-01-04 00:00:00)可以直接等于pdate(2023-
         ......
  • 关于华为高斯数据库 GaussDB 版本
    GaussDB产品线变更,目前高斯DB分为两个品牌:GaussDB和openGauss。GaussDB100目前暂不发包(一般不可下载的效果就不好说),公司合作伙伴需向华为提交申请。主打OLTP(Online......
  • 降低vue/cli版本,从5.0.8换到4.4.6
    由于之前装了最新版的vue/cli,最新版的脚手架用的是vue3,不仅要重新学vue3的语法,而且elementui也用不了,用element-plus,等价于--->本人不会!因此今天换vue脚手架的版本,等以后有......
  • OpenCore开机音频设置教程!
    原文来源于黑果魏叔官网,转载需注明出处。前言自从​​OpenCore​​引导版本更新至0.7.7以后,黑苹果开机声音的设置已修改为UEFI音频增益的方式来执行,以下是简单的设置教程。......
  • ATT&CK v10版本战术介绍执行(下篇)
    一、引言在上期文章中我们介绍了ATT&CK执行战术前6项技术内容,本期我们为大家介绍执行战术后7项技术内容,后续会陆续介绍ATT&CK其他战术内容,敬请关注。​二、ATT&CKv10简介MI......