Qt 添加MSVC2017編譯器的完整教程(保姆級)
0. 前言
只要是Qt使用者,基本都遇到過安裝MSVC編譯器的問題。
這個問題似乎有很方便的解決辦法:安裝對應(yīng)版本的Visual Studio就好了。
但大家都知道VS的體量,如果把想用的編譯器對應(yīng)的完整的VS全安裝一遍,即使想想就足夠可怕了。
本文在踩了各種坑之后,總算搞出來一條簡單實用的道路來。下面直奔主題~
1. 前期準備
要想在Qt中使用MSVC編譯器,除了涉及到Qt和MSVC編譯器之外,最好還了解一下Qt Kits和Windows 10 SDK:
Qt Kits是Qt Creator中,用來連接各種編譯器(minGW、MSVC等)的套件,類似于一個轉(zhuǎn)接器;如果只有MSVC編譯器而沒有對應(yīng)套件,則也無法使用該編譯器;可以在菜單–>工具–>選項–>Kits中查看安裝的套件。
Windows 10 SDK在此處可理解為MSVC編譯器需要使用到的一些頭文件、運行庫等;
另外,Qt Creator的版本最好要高一些,一方面是過低的版本可能沒有對應(yīng)MSVC編譯器的套件,另一方面是過低的版本添加MSVC編譯器時不夠智能。
后一條來源于筆者觀察安裝了完整VS時識別到的編譯器中,MSVC編譯器的詳情如下(圖中為MSVC2015):

Qt Creator中查看編譯器:菜單–>工具–>選項–>Kits(老版本可能是在 構(gòu)建和運行 中)–>編譯器。
它顯然只是查找了一個叫vcvarsall.bat的腳本文件,然后就添加好了編譯器。
而這個添加編譯器的接口,在高版本的Qt Creator中才有,如下圖為Qt Creator 5.0.2。

而在低版本中沒有添加MSVC編譯器的選項,如下圖為Qt Creator 4.3.1:

到此基本前期了解的內(nèi)容就差不多了,以下是準備的工具清單:
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下載;
2. 安裝
2.1 安裝Qt
雙擊剛才下載的Qt安裝文件,基本操作不多講,在Select Components頁面,把自己要用的套件勾選上即可:

從圖中可看到,
Qt 5.12.12只支持到MSVC 2017。
2.2 安裝MSVC編譯器和Windows 10 SDK
打開Visual Studio Installer,如果已經(jīng)安裝過內(nèi)容了可能是如下頁面,點擊修改(頭一回打開的話不需要這一步):

然后在工作負荷中勾選使用C++的桌面開發(fā),它會幫我們勾選好一些組件,以及一個Windows 10 SDK:


此處可以取消前面5個自動勾選的組件,選擇下方的SDK。感興趣的朋友可以自行查看每個組件的作用;
在單個組件中勾選自己要安裝的編譯器,此處筆者安裝了MSVC2015、MSVC2017、MSVC2019:

3. 配置
3.1 添加MSVC編譯器并選擇bat文件
打開Qt Creator,在菜單欄依次選擇:工具–>選項–>Kits–>編譯器,有相當多的教程,安裝完前面的內(nèi)容之后,此處就能檢測到自己安裝的編譯器了(太令人羨慕了)。但筆者從沒成功過,只能找到安裝了完整VS的編譯器:

在右側(cè)選擇添加–>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位編譯器,按照下圖填寫:

3.2 傳入腳本文件參數(shù)
這里其實會有朋友發(fā)現(xiàn)一個問題:無論平臺和ABI怎么選,對應(yīng)的初始化文件都是同一個,選這倆就沒有意義了!
這里就要注意到平臺后面的輸入框了,我們知道bat是批處理文件(如果不知道那就百度一下??),是有傳入?yún)?shù)的功能的,我們打開這個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:

4. 測試
新建一個界面工程:

選擇剛才的Kits:

Ctrl+R運行:

5. 總結(jié)
- 要想在
Qt中使用MSVC編譯器,需要帶有對應(yīng)MSVC編譯器版本套件(Kit)的Qt Creator、MSVC編譯器、Windows 10 SDK; - 套件像一個轉(zhuǎn)接頭,將
MSVC編譯器集成到Qt Creator中; Qt Creator版本要足夠高,否則要是沒有對應(yīng)MSVC編譯器套件就麻煩了;Qt Creator的另一個關(guān)鍵功能為支持MSVC編譯器的添加,這樣才能通過vcvarsall.bat文件方便地添加MSVC編譯器;- 添加新的編譯器后,選擇
vcvarsall.bat批處理文件,在后面填上平臺、版本控制的參數(shù),選擇對應(yīng)的ABI,編譯器就配置完成了; - 別忘了在對應(yīng)版本的套件(
Kit)中選擇對應(yīng)的編譯器;
到此這篇關(guān)于Qt 添加MSVC2017編譯器的完整教程(保姆級)的文章就介紹到這了,更多相關(guān)Qt 添加MSVC2017編譯器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C語言中的long型究竟占4個字節(jié)還是8個字節(jié)(遇到的坑)
小編在復(fù)習(xí)C語言的時候踩到了不少坑,糾結(jié)long類型究竟占4個字節(jié)還是8個字節(jié)呢?好,今天通過本文給大家分享下我的詳細思路,感興趣的朋友跟隨小編一起看看吧2021-11-11
C++實現(xiàn)LeetCode(203.移除鏈表元素)
這篇文章主要介紹了C++實現(xiàn)LeetCode(203.移除鏈表元素),本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08
設(shè)計模式中的備忘錄模式解析及相關(guān)C++實例應(yīng)用
這篇文章主要介紹了設(shè)計模式中的備忘錄模式解析及相關(guān)C++實例應(yīng)用,備忘錄模式也經(jīng)常被用來在命令模式中維護可以撤銷(Undo)操作的狀態(tài),需要的朋友可以參考下2016-03-03
c++中關(guān)于max_element()函數(shù)解讀
這篇文章主要介紹了c++中關(guān)于max_element()函數(shù)解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02

