开发者

Qt 添加MSVC2017编译器的完整教程(保姆级)

开发者 https://www.devze.com 2024-08-14 12:09 出处:网络 作者: Copperxcx
目录0. 前言1. 前期准备2. 安装2.1 安装Qt2.2 安装MSVC编译器和Windows 10 SDK3. 配置3.1 添加MSVC编译器并选择BAT文件3.2 传入脚本文件参数4. 测试5. 总结0. 前言
目录
  • 0. 前言
  • 1. 前期准备
  • 2. 安装
    • 2.1 安装Qt
    • 2.2 安装MSVC编译器和Windows 10 SDK
  • 3. 配置
    • 3.1 添加MSVC编译器并选择BAT文件
    • 3.2 传入脚本文件参数
  • 4. 测试
    • 5. 总结

      0. 前言

      只要是Qt使用者,基本都遇到过安装MSVC编译器的问题。

      这个问题似乎有很方便的解决办法:安装对应版本的Visual Studio就好了

      但大家都知道VS的体量,如果把想用的编译器对应的完整的VS全安装一遍,即使想想就足够可怕了。

      本文在踩了各种坑之后,总算搞出来一条简单实用的道路来。下面直奔主题~

      1. 前期准备

      要想在Qt中使用MSVC编译器,除了涉及到QtMSVC编译器之外,最好还了解一编程客栈Qt KitsWindows 10 SDK

      • Qt KitsQt Creator中,用来连接各种编译器minGWMSVC等)的套件,类似于一个转接器;如果只有MSVC编译器而没有对应套件,则也无法使用该编译器;

        可以在菜单–>工具–>选项–>Kits中查看安装的套件。

      • Windows 10 SDK在此处可理解为MSVC编译器需要使用到的一些头文件、运行库等;

      另外,Qt Creator的版本最好要高一些,一方面是过低的版本可能没有对应MSVC编译器的套件,另一方面是过低的版本添加MSVC编译器时不够智能

      后一条来源于笔者观察安装了完整VS时识别到的编译器中,MSVC编译器的详情如下(图中为MSVC2015):

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      Qt Creator中查看编译器:菜单–>工具–>选项–>Kits(老版本可能是在 构建和运行 中)–>编译器。

      它显然只是查找了一个叫vcvarsall.bat的脚本文件,然后就添加好了编译器。

      而这个添加编译器的接口,在高版本的Qt Creator中才有,如下图为Qt Creator 5.0.2

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      而在低版本中没有添加MSVC编译器的选项,如下图为Qt Creator 4.3.1

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      到此基本前期了解的内容就差不多了,以下是准备的工具清单:

      Qt 5.12.12:可以在此处下载:USTC源下载Qt 5.12.12;

      不一定非要这个版本,但最好版本高一些,一定要有添加MSVC编译器的接口!

      MSVC编译器和Windows 10 SDK安装工具2022版:可在此处下载:Visual Studio 2022 生成工具;

      下载得到vs_BuildTools.exe,打开后将自动安装Visual Studio Installer,在这个Installer中能够安装MSVC编译器和Windows 10 SDK

      EverythingWox:配置过程中会需要定位vcvarsall.bat文件,这俩两个工具将极大地提高效率,墙裂推荐!下载地址:github Wox下载;

      2. 安装

      2.1 安装Qt

      双击刚才下载的Qt安装文件,基本操作不多讲,在Select Components页面,把自己要用的套件勾选上即可:

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      从图中可看到,Qt 5.12.12只支持到MSVC 2017

      2.2 安装MSVC编译器和Windows 10 SDK

      打开Visual Studio Installer,如果已经安装过内容了可能是如下页面,点击修改(头一回js打开的话不需要这一步):

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      然后在工作负荷中勾选使用C++的桌面开发,它会帮我们勾选好一些组件,以及一个Windows 10 SDK

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      此处可以取消前面5个自动勾选的组件,选择下方的SDK。感兴趣的朋友可以自行查看每个组件的作用;

      单个组件中勾选自己要安装的编译器,此处笔者安装了MSVC2015、MSVC2017、MSVC2019

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      3. 配置

      3.1 添加MSVC编译器并选择bat文件

      打开Qt Creator,在菜单栏依次选择:工具–>选项–>Kits–>编译器,有相当多的教程,安装完前面的内容之后,此处就能检测到自己安装的编译器了(太令人羡慕了)。但笔者从没成功过,只能找到安装了完整VS的编译器

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      在右侧选择添加–>MSVC–>C++

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      如果安装了WoxEverything,此刻可以Alt+space输入vcvarsall.bat,可以找到它所在的路径:

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      第一个是笔者电脑上安装了完整VS2015得到的bat文件;

      默认文件位置供参考:C:\Program Fandroidiles (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat

      此处笔者想添加MSVC201764位编译器,按照下图填写:

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      3.2 传入脚本文件参数

      这里其实会有朋友发现一个问题:无论平台和ABI怎么选,对应的初始化文件都是同一个,选这俩就没有意义了!

      这里就要注意到平台后面的输入框了,我们知道bat是批处理文件(如果不知道那就百度一下),是有传入参数的功能的,我们打开这个vcvarsall.bat,看看其中有没有什么提示,翻一翻就找到了示例:

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      也可以在微软官方文档查找到传参的格式。

      这里可以指定Windwos 10 SDKMSVC编译器的版本,如果不清楚版本号,可以在Visual Studio Installer中查看,如下图:

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      笔者安装的SDK版本是10.0.20348MSVC2017版本是14.16,那按照bat文件传参的示例,此处需要的MSVC 2017 64bit的格式就是:

      x64 10.0.20348.0 -vcvars_ver=14.16
      

      填好后点击Apply,然后切换到Kits,将MSVC 2017套件选择好刚才的编译器,点击OK

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      4. 测试

      新建一个界面工程:

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      选择刚才的Kits

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      Ctrl+R运行:

      Qt 添加MSVC2017编译器的完整教程(保姆级)

      5. 总结

      • 要想在Qt中使用MSVC编译器,需要带有对应MSVC编译器版本套件(Kit)的Qt CreatorMSVC编译器、Windows 10 SDK
      • 套件像一个转接头,将MSVC编译器集成到Qt Creator中;
      • Qt Creator版本编程客栈足够高,否则要是没有对应MSVC编译器套件就麻烦了;
      • Qt Creator的另一个关键功能为支持MSVC编译器的添加,这样才能通过vcvarsall.bat文件方便地添加MSVC编译器;
      • 添加新的编译器后,选择vcvarsall.bat批处理文件,在后面填上平台、版本控制的参数,选择对应的ABI,编译器就配置完成了;
      • 别忘了在对应版本的套件(Kit)中选择对应的编译器;

      到此这篇关于Qt 添加MSVC2017编译器的完整教程(保姆级)的文章就介绍到编程客栈这了,更多相关Qt 添加MSVC2017编译器内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)! 

      0

      精彩评论

      暂无评论...
      验证码 换一张
      取 消

      关注公众号