近期在Qt环境下编写C++代码时,我发现如果不安装 Visual Stadio
全家桶的话无法进行 MSVC
编译。而我所面临的问题是,放在公司的这台笔记本存储空间只有128GB
。对,你没有看错,是128G,而且是整个电脑。安装之前我忘记截图了,这里就po一张按照本文配置完后的磁盘截图。
当时,我就产生了一个想法,难道微软这么大的厂,不安装它的全家桶不至于让我们编译不了吧。在经过一番搜索之后,我发现了一个非常棒的解决方案。经过我一个多小时的测试,非常有效!!!
废话不多说了,上干货。
OS version | Windows10 Pro 64bit |
---|---|
Qt version | 5.14.0 |
Qt creator | 4.11.0 |
MSVC version | 2017 |
一、原理解析
我们都知道,如果你安装了Visual Stadio
全家桶,在Qt Creator里可以自动检测到MSVC
的编译环境。为什么Qt能自动检测出MSVC环境呢?经过一番研究和搜集,我发现,在安装Visual Stadio
过程中,Visual Stadio自动对Qt的环境做了适配。
这种适配,主要是通过修改注册表中某一个项来实现的。大致过程是这样的,在安装完Visual Stadio后,它自动修改了注册表,当你再打开Qt Creator时,Qt Creator会自动去查找这个注册表是否有变化,如果发生了变化,就自动适配变化后的编译器,否则,就不做任何修改。
究竟是哪个注册表让这种神奇的现象发生的呢?
- Win 32bit环境下:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStuidio\SxS\VS7
- Win 64bit环境下:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\VisualStuidio\SxS\VS7
Qt Creator会遍历SxS
文件夹下的每一个项来比对注册表的变化。
- 如果键名(其实就是数字)大于 14(从 15 开始,即 msvc2017,那就把该键值(其实就是硬盘里的 vs 安装路径)后面拼接上
/VC/Auxiliary/Build
查看此处是不是有vcvarsall.bat
文件。 - 否则(即键名小于等于 14),那就把该键值后面拼接上
/VC7
查看此处是不是有vcvarsall.bat
文件。
上述的数值与MSVC版本的对应关系可以参考:
正常情况下修改好这些注册表的键值,就能达到在Qt Creator使用MSVC编译代码的效果,除非你的电脑中找不到vcvarsall.bat
文件。
二、详细操作步骤
1.前期准备
a.存储空间准备
- 安装好Qt Creator的前提下,至少预留
10GB
的磁盘空间。 - 没有安装Qt Creator的前提下,至少预留
20GB
的磁盘空间。
b.工具准备
Visual Stadio 2019 生成工具
qt-opensource-windows-x86-5.12.4.exe
(已安装请忽略)
2.安装工具
篇幅所限,安装 Qt 的步骤在这里就省略了。
Visual Stadio 2019 生成工具的安装
- 打开已经下载好的安装包,第一次打开需要下载一些包文件,下载速度视网速决定,请耐心等待。
- 进入界面后,只需勾选
C++生成工具
,在右侧的安装详细信息
菜单中再继续勾选你需要的工具。
Tips:Qt 5.14 推荐采用 MSVC 2017,下图右侧也有 2017的可选项,但是该工具默认链接的是2019版,并且也能正常使用,所以就先不折腾了,保持默认,只勾图中左侧一个勾,右侧会自动勾选默认的几个选项。 然后就耐心等待联网下载和安装。
等安装完毕,就可以关闭这个页面了。
3.增加Qt Creator组件
如果你和我一样,在配置之前,已经安装完Qt Creator了,那请你继续看这一段。
- 打开Qt Creator安装目录
- 打开
MaintenanceTool.exe
- 单击右下角
设置
,再单击资料档案库
,添加临时资料档案库
,地址是http://mirrors.ustc.edu.cn/qtproject/online/qtsdkrepository/windows_x86/root/qt/
Ps : 这里有个大坑,必须说一下,下载元信息响应会很慢,稍等10分钟左右就可以了。
- 选择要添加的组件
4.环境配置【重要!!!】
如果这时候你直接打开Qt Creator,你会发现编程器里面还是空的。别着急,要想让自动Qt Creator 检测刚刚安好的编译器,还有关键一步。
- 关闭 Qt Creator;
- 按下
Windows + R
在弹出的窗口输入regedit
,打开注册表编辑器;
- 打开后,在输入框粘贴下方的路径
\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VisualStudio
- 右击,新建 -> 项 ,连续新建两项,注意层次关系和大小写。
在 VS7 上新建字符串值,名称是16.0,值是 vs生成工具的安装目录下的一个子目录,具体看图中3处和横线处(仔细看图,我没写错),要保证横线处的路径下有红色箭头处的文件。
至此,再打开 Qt Creator 会发现已经自动识别编译环境并且添加好了。
当你兴奋地去新建一个测试程序时,你会发现一个新问题,这个编译环境不能单步调试。这是因为当前 Qt 无法调用 cdb.exe
所致。下面我们手动为 Qt 与 cdb 工具建立链接。
1. 打开控制面板
依次找到 程序 -> 程序和功能
,右击截图中的 Windows SDK ,选择 更改
。
选择 Change
勾选图中的选项。
再次重启,Qt Creator ,你会发现 Debugger
下拉框里已经探测到 cdb 了。
参考文章: