只要是Qt
使用者,基本都遇到过安装MSVC
编译器的问题。
这个问题似乎有很方便的解决办法:安装对应版本的Visual Studio
就好了。
但大家都知道VS
的体量,如果把想用的编译器对应的完整的VS
全安装一遍,即使想想就足够可怕了。
本文在踩了各种坑之后,总算搞出来一条简单实用的道路来。下面直奔主题~
要想在Qt
中使用MSVC
编译器,除了涉及到Qt
和MSVC
编译器之外,最好还了解一下Qt Kits
和Windows 10 SDK
:
Qt Kits
是Qt Creator
中,用来连接各种编译器(minGW
、MSVC
等)的套件,类似于一个转接器;如果只有MSVC
编译器而没有对应套件,则也无法使用该编译器;
可以在菜单–>工具–>选项–>Kits中查看安装的套件。
Windows 10 SDK
在此处可理解为MSVC
编译器需要使用到的一些头文件、运行库等;另外,Qt Creator
的版本最好要高一些,一方面是过低的版本可能没有对应MSVC编译器的套件,另一方面是过低的版本添加MSVC编译器时不够智能。
后一条来源于笔者观察安装了完整VS时识别到的编译器中,MSVC
编译器的详情如下(图中为MSVC2015
):
Qt Creator
中查看编译器:菜单–>工具–>选项–>Kits(老版本可能是在 构建和运行 中)–>编译器。
它显然只是查找了一个叫vcvarsall.bat的脚本文件,然后就添加好了编译器。
而这个添加编译器的接口,在高版本的Qt Creator中才有,如下图为Qt Creator 5.0.2
。
而在低版本中没有添加MSVC
编译器的选项,如下图为Qt Creator 4.3.1
:
到此基本前期了解的内容就差不多了,以下是准备的工具清单:
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
;
Everything
和Wox
:配置过程中会需要定位vcvarsall.bat
文件,这俩两个工具将极大地提高效率,墙裂推荐!下载地址:Github Wox下载;双击刚才下载的Qt
安装文件,基本操作不多讲,在Select Components
页面,把自己要用的套件勾选上即可:
从图中可看到,Qt 5.12.12
只支持到MSVC 2017
。
打开Visual Studio Installer
,如果已经安装过内容了可能是如下页面,点击修改(头一回打开的话不需要这一步):
然后在工作负荷中勾选使用C++的桌面开发,它会帮我们勾选好一些组件,以及一个Windows 10 SDK
:
此处可以取消前面5个自动勾选的组件,选择下方的SDK
。感兴趣的朋友可以自行查看每个组件的作用;
在单个组件中勾选自己要安装的编译器,此处笔者安装了MSVC2015、MSVC2017、MSVC2019
:
打开Qt Creator
,在菜单栏依次选择:工具–>选项–>Kits–>编译器,有相当多的教程,安装完前面的内容之后,此处就能检测到自己安装的编译器了(太令人羡慕了)。但笔者从没成功过,只能找到安装了完整VS的编译器:
在右侧选择添加–>MSVC–>C++,
如果安装了Wox
和Everything
,此刻可以Alt+space
输入vcvarsall.bat
,可以找到它所在的路径:
第一个是笔者电脑上安装了完整VS2015
得到的bat
文件;
默认文件位置供参考:C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat
此处笔者想添加MSVC2017
的64
位编译器,按照下图填写:
这里其实会有朋友发现一个问题:无论平台和ABI
怎么选,对应的初始化文件都是同一个,选这俩就没有意义了!
这里就要注意到平台后面的输入框了,我们知道bat
是批处理文件(如果不知道那就百度一下👻),是有传入参数的功能的,我们打开这个vcvarsall.bat
,看看其中有没有什么提示,翻一翻就找到了示例:
也可以在微软官方文档查找到传参的格式。
这里可以指定Windwos 10 SDK
和MSVC
编译器的版本,如果不清楚版本号,可以在Visual Studio Installer
中查看,如下图:
笔者安装的SDK
版本是10.0.20348
,MSVC2017
版本是14.16
,那按照bat
文件传参的示例,此处需要的MSVC 2017 64bit
的格式就是:
x64 10.0.20348.0 -vcvars_ver=14.16
填好后点击Apply
,然后切换到Kits
,将MSVC 2017
套件选择好刚才的编译器,点击OK
:
新建一个界面工程:
选择刚才的Kits
:
Ctrl+R
运行:
完结撒花~
Qt
中使用MSVC
编译器,需要带有对应MSVC
编译器版本套件(Kit
)的Qt Creator
、MSVC
编译器、Windows 10 SDK
;MSVC
编译器集成到Qt Creator
中;Qt Creator
版本要足够高,否则要是没有对应MSVC
编译器套件就麻烦了;Qt Creator
的另一个关键功能为支持MSVC编译器的添加,这样才能通过vcvarsall.bat
文件方便地添加MSVC
编译器;vcvarsall.bat
批处理文件,在后面填上平台、版本控制的参数,选择对应的ABI
,编译器就配置完成了;Kit
)中选择对应的编译器;原网址: 访问
创建于: 2024-05-28 14:52:35
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论