999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Windows 10下編譯、安裝、配置Qt

2020-12-07 06:08:03謝逸軒馬維華
計(jì)算機(jī)時(shí)代 2020年11期
關(guān)鍵詞:環(huán)境用戶

謝逸軒 馬維華

摘? 要: 為了獲得最新MSVC 2019版Qt庫(kù)開發(fā)軟件,解決Qt在線安裝包在國(guó)內(nèi)無(wú)法使用,以及Qt官方自5.15版本起不再為開源社區(qū)提供離線安裝包的問(wèn)題。文章介紹了通過(guò)構(gòu)建Qt庫(kù)編譯環(huán)境;遵照Qt發(fā)行說(shuō)明配置編譯參數(shù);利用Qt源代碼編譯生成5.15版Qt庫(kù)的整個(gè)過(guò)程。上述安裝和配置利用Qt Creator成功編譯并運(yùn)行基于Qt5.15的HelloWorld程序來(lái)予以驗(yàn)證。

關(guān)鍵詞: Qt編譯; Qt5.15; Qt離線安裝; MSVC 2019

中圖分類號(hào):TP312? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):1006-8228(2020)11-75-03

Abstract: In order to obtain the latest Qt library development software for MSVC 2019, solve the problem that Qt online installation package cannot be used in China, as well as Qt no longer provides official offline installation package for open source community since version 5.15. This paper introduces the whole process of generating Qt library version 5.15 that through building Qt library compiling environment, configuring compilation parameters according to the Qt release notes, and compiling the Qt source code. The installation and configuration are verified by Qt creator successfully compiling and running HelloWorld program based on Qt5.15.

Key words: Qt compiling; Qt 5.15; Qt offline installation; MSVC 2019

0 引言

Qt是一個(gè)開源和商業(yè)授權(quán)并進(jìn)的、以跨平臺(tái)框架著稱的,以C++語(yǔ)言為基礎(chǔ)并帶有多種主流語(yǔ)言擴(kuò)展支持的,以圖形用戶界面為主要功能并附有其他系統(tǒng)資源控制類的,提供統(tǒng)一、直觀、強(qiáng)大API的庫(kù)函數(shù)集合。

近年來(lái),Qt公司嘗試通過(guò)強(qiáng)調(diào)開源用戶義務(wù)、削減開源用戶權(quán)利等措施提升用戶為商業(yè)授權(quán)版Qt的付費(fèi)意愿。Qt公司曾在安裝包中強(qiáng)制用戶登錄,其后引發(fā)開源社區(qū)不滿繼而取消該措施[1]。如今不僅重操舊業(yè),而且宣布自5.15版本起僅商業(yè)授權(quán)用戶可獲得Qt長(zhǎng)期支持版以及離線安裝包[2]。這一措施給身處網(wǎng)絡(luò)環(huán)境不穩(wěn)定的國(guó)內(nèi)Qt用戶帶來(lái)了煩惱,國(guó)內(nèi)Qt用戶要么使用不含新功能和缺陷補(bǔ)丁的舊版本,要么花費(fèi)大量時(shí)間和精力研究Qt的編譯條件。

本文在最受開發(fā)人員歡迎的Windows 1064bit平臺(tái),利用Microsoft Visual Studio 2019 C++ Compiler(簡(jiǎn)稱MSVC 2019)原生編譯Qt 5.15庫(kù),然后結(jié)合Qt Creator 4.12.3開發(fā)運(yùn)行基于Qt的HelloWorld程序。本文以嚴(yán)謹(jǐn)?shù)淖黠L(fēng),提出了一套行之有效的編譯環(huán)境準(zhǔn)備方法,并對(duì)編譯過(guò)程中所需時(shí)間、硬盤空間以及內(nèi)存空間給予相應(yīng)提醒,使應(yīng)用開發(fā)人員對(duì)Qt開發(fā)環(huán)境的搭建有合理、穩(wěn)定的估計(jì),并且像之前一樣繼續(xù)專注于程序開發(fā)。

1 Qt開發(fā)環(huán)境的安裝

舊時(shí)的開發(fā)環(huán)境一般由文本編輯器和工具鏈(含編譯器)組成,為了縮短開發(fā)時(shí)間和提高代碼利用率,第三方庫(kù)函數(shù)應(yīng)運(yùn)而生。但當(dāng)?shù)谌綆?kù)函數(shù)強(qiáng)大到能實(shí)現(xiàn)某應(yīng)用領(lǐng)域通用完備功能的底層服務(wù)時(shí),我們一般稱之為軟件框架。Qt庫(kù)即是實(shí)現(xiàn)通用圖形用戶界面的框架。

為了搭建Qt開發(fā)環(huán)境,我們需要依次安裝集成了UI設(shè)計(jì)工具和文本編輯器的集成開發(fā)環(huán)境Qt Creator 4.12、工具鏈MSVC 2019以及圖形框架Qt 5.15。

1.1 集成開發(fā)環(huán)境——Qt Creator的安裝

訪問(wèn)Qt官方資源庫(kù)[4],進(jìn)入qtcreator子目錄,選擇最新版本qt-creator-opensource-windows-x86_64-4.12.3.exe下載。

打開可執(zhí)行文件,登錄Qt賬號(hào),閱讀權(quán)利聲明并確認(rèn),其余按默認(rèn)設(shè)置完成安裝。

1.2 工具鏈——MSVC 2019的安裝

前往微軟Visual Studio官網(wǎng)[3]下載Visual Studio 2019 生成工具,當(dāng)然也可以安裝Visual Studio 2019社區(qū)版作為替代。打開下載好的在線安裝程序,在工作負(fù)載選項(xiàng)卡中選擇“C++ 生成工具”,于右側(cè)的安裝詳細(xì)信息中展開C++生成工具,確保MSVC、Windows 10 SDK、C++ CMake工具以及C++ATL共四項(xiàng)均被選中,其余根據(jù)需要增減組件并調(diào)整安裝位置,確定安裝即可。

1.3 圖形框架——Qt 5.15的編譯安裝

本節(jié)將圍繞Qt 5.15的編譯安裝,依次介紹源碼獲取、編譯前環(huán)境準(zhǔn)備、配置、編譯以及安裝共5個(gè)環(huán)節(jié)。為了介紹的方便,本節(jié)所有壓縮包解壓位置均以D盤示例。此外,本例提及的所有時(shí)間均在i7-9750H+固態(tài)硬盤+虛擬機(jī)的環(huán)境中反復(fù)實(shí)踐得知。

1.3.1 源碼獲取

https://download.qt.io/official_releases/qt/

訪問(wèn)Qt官方源碼庫(kù),選擇最新版本5.15.0,下載擴(kuò)展名為zip的壓縮包(.xz文件win環(huán)境下解壓會(huì)報(bào)錯(cuò))。獲得名為qt-everywhere-src-5.15.0.zip的Qt源碼包,解壓到D盤待用。

1.3.2 編譯前環(huán)境準(zhǔn)備之強(qiáng)制性要求

⑴ ActivePerl

https://www.activestate.com/products/downloads/

訪問(wèn)ActivePerl官方網(wǎng)站,選擇最新版本5.28,注冊(cè)并登錄后提供下載,保存的文件名為ActivePerl-5.28.1.0000-MSWin32-x64-b462fde1.exe。

典型安裝即可。

⑵ Python

https://www.python.org/downloads/

訪問(wèn)Python官方網(wǎng)站,選擇Python 2.7.18(QtWebEngine模塊僅支持Python2),獲得名為python-2.7.18.amd64.msi的安裝程序。

安裝時(shí)注意勾選Add python.exe to Path選項(xiàng),其余默認(rèn)即可。

1.3.3 編譯前環(huán)境準(zhǔn)備之官方配置所需要求

Qt每個(gè)版本發(fā)布時(shí),官方會(huì)通過(guò)發(fā)布日志[5]提供各平臺(tái)各目標(biāo)的官方推薦配置。Windows_10 (msvc2019-x86_64)平臺(tái)下編譯適用于Windows_10 (msvc2019-x86_64)的Qt庫(kù),需要額外準(zhǔn)備以下第三方的預(yù)編譯庫(kù)以供Qt編譯時(shí)使用。

⑴ OpenSSL

https://slproweb.com/products/Win32OpenSSL.html

由于OpenSSL官方僅提供源碼,從源碼編譯又需要其他的前置條件。這里直接提供可信任的、適用Windows的、預(yù)編譯的OpenSSL庫(kù)的下載鏈接。獲得名為Win64OpenSSL-1_1_1g.exe的安裝包,典型安裝并記安裝后的位置為C:\Program Files\OpenSSL-Win64,編譯Qt時(shí)需要用到。

⑵ MySQL

https://downloads.mysql.com/archives/

選擇connector/c。雖然connector/c++似乎更好,但是Qt不認(rèn)。下載得到名為mysql-connector-c-6.1.11-winx64.zip的壓縮包,將其解壓到D盤待用。

⑶ PostgreSQL

https://www.postgresql.org/download/

https://www.enterprisedb.com/download-postgresql-binaries

前者可下載官方安裝包,后者可由前者頁(yè)面上超鏈接出來(lái),并提供預(yù)編譯庫(kù)的下載。以后者為例,獲得名為postgresql-12.3-1-windows-x64-binaries.zip,將其解壓到D盤待用。

⑷ LLVM(clang)

https://releases.llvm.org/download.html

LLVM是Qt Docs模塊的依賴,缺少它并不影響其他模塊的正常編譯。前往官方網(wǎng)站,獲得名為L(zhǎng)LVM-10.0.0-win64.exe的安裝程序,典型安裝并記安裝后的位置為C:\Program Files\LLVM,編譯Qt時(shí)需要用到。

1.3.4 配置

用管理員權(quán)限打開CMD或者PowerShell,運(yùn)行以下命令設(shè)置用戶環(huán)境變量:

SETX LLVM_INSTALL_DIR "C:\Program Files\LLVM"

在開始菜單中打開x64 Native Tools Command Prompt for VS 2019,輸入以下命令配置環(huán)境變量,其中REM開頭的命令為注釋。

REM在C盤創(chuàng)建默認(rèn)安裝目錄,確保至少有10GB可用空間。

MKDIRC:\Qt\Qt-5.15.0

REM在D盤創(chuàng)建編譯目錄以保護(hù)源碼目錄的整潔,確保至少120GB可用空間。

REM預(yù)留額外硬盤空間用于虛擬內(nèi)存分配,確保虛擬+物理內(nèi)存可用大于32G。

D:

MKDIR D:\qt-build

CD D:\qt-build

REM 設(shè)置Qt源碼目錄和添加可執(zhí)行文件搜索路徑

SET QT_SRC=”D:\qt-everywhere-src-5.15.0”

SET PATH=%QT_SRC%\qtbase\bin;%QT_SRC

%\gnuwin32\bin;%PATH%

REM 設(shè)置官方推薦配置所需環(huán)境變量

SET OPENSSL_INCLUDE_x64=”C:\Program

Files\OpenSSL-Win64\include”

SET OPENSSL_LIB_x64=”C:\Program

Files\OpenSSL-Win64\lib”

SETMYSQL_INCLUDE_x64=”D:\mysql-connector-c

-6.1.11-winx64\include”

SET MYSQL_LIB_x64=”D:\mysql-connector-c-6.1.11

-winx64\lib”

SET POSTGRESQL_INCLUDE_x64=”D:\pgsql\include”

SET POSTGRESQL_LIB_x64=”D:\pgsql\lib”

REM開始配置,預(yù)計(jì)耗時(shí)兩分鐘。

REM原官方配置-prefix后跟c:\Users\qt\work\install,這里改成了更符合離線安裝程序給出的默認(rèn)安裝位置。此外官方配置-no-sql-mysql表示不編譯Mysql驅(qū)動(dòng),但又包括了Mysql的庫(kù)文件(不包括也能編譯),這里用-plugin-sql-mysql替換之以啟用Mysql驅(qū)動(dòng)。

%QT_SRC%\configure.bat -opensource -confirm

-license -verbose -prefix? C:\Qt\Qt-5.15.0 -debug

-and-release -release -force-debug-info -nomake

tests -opengl dynamic -nomake examples -openssl

-I %OPENSSL_INCLUDE_x64% -L %

OPENSSL_LIB_x64%-plugin-sql-mysql -plugin-sql

-sqlite -plugin-sql-odbc -I %MYSQL_INCLUDE_x64%

-L %MYSQL_LIB_x64% -plugin-sql-psql -I %

POSTGRESQL_INCLUDE_x64% -L

%POSTGRESQL_LIB_x64% -qt-zlib

配置成功后,終端窗口會(huì)提示“Qt is now configured for building. Just run 'nmake'.”。

1.3.5 編譯

編譯會(huì)產(chǎn)生中間文件占用大量空間,若專門構(gòu)建虛擬機(jī)來(lái)運(yùn)行編譯的話,建議至少分配200GB的硬盤空間以安裝Windows系統(tǒng)、配置編譯環(huán)境和虛擬內(nèi)存。

配置成功的終端內(nèi)運(yùn)行如下命令開始編譯,大約需要8小時(shí):

nmake

1.3.6 安裝

確保安裝目錄(本例為C:\Qt\Qt-5.15.0)具有10GB可用空間,運(yùn)行以下命令啟動(dòng)安裝過(guò)程,大約需要15分鐘:

nmake install

2 Qt開發(fā)環(huán)境的配置

首先,啟用編譯安裝的Qt庫(kù)。啟動(dòng)Qt Creator,依次選擇工具、選項(xiàng)、Kits下的Qt Versions,添加C:\Qt\Qt-5.15.0\bin目錄下qmake.exe。

其次,啟用MSVC 2019編譯器。由于Qt Creator最新版本4.12.3存在缺陷,導(dǎo)致非英語(yǔ)顯示語(yǔ)言環(huán)境下無(wú)法檢測(cè)到安裝的Visual Studio 2019 生成工具。此外,Qt Creator又不支持手動(dòng)添加MSVC編譯器,所以設(shè)置稍顯麻煩。目前已核實(shí)兩種方案均可解決此問(wèn)題,一是卸載MSVC 2019生成工具,安裝Visual Studio 2019社區(qū)版;二是切換系統(tǒng)顯示語(yǔ)言為英語(yǔ),重啟電腦后遵循上述路徑打開編譯器選項(xiàng)卡,將自動(dòng)檢測(cè)到的編譯工具(形如Microsoft Visual C++ Compiler 16.6.30225.117 (x86))一一按右側(cè)clone按鈕克隆一份(共八個(gè)),保存配置后改回中文顯示語(yǔ)言并重啟系統(tǒng)。

再次,設(shè)置默認(rèn)編譯組合Kits。遵循上述路徑打開Kits選項(xiàng)卡,在Compiler一欄中C/C++選擇MSVC amd64,Debugger一欄選擇x64版本,Qt version一欄選擇Qt 5.15.0,其余不動(dòng),保存即可。

最后,添加動(dòng)態(tài)鏈接庫(kù)搜索路徑。修改系統(tǒng)環(huán)境變量Path,追加Qt庫(kù)bin目錄的路徑(本例為C:\Qt\Qt-5.15.0\bin),以便系統(tǒng)在運(yùn)行用戶Qt程序時(shí)能夠定位Qt動(dòng)態(tài)鏈接庫(kù)。此外,將編譯Qt庫(kù)時(shí)通過(guò)解壓獲得的第三方動(dòng)態(tài)庫(kù)一并拷貝到Qt庫(kù)bin目錄下,具體到本例為MySQL中l(wèi)ib目錄下的libmysql.dll,以及PostgreSQL中l(wèi)ib目錄下的所有后綴名為dll的文件。

3 Qt開發(fā)環(huán)境的測(cè)試

打開Qt Creator,新建其他項(xiàng)目的empty qmake Project,鍵入項(xiàng)目名稱HelloWorld,在打開的HelloWorld.pro文件中添加以下代碼并保存:

QT += widgets

然后,新建C++下的C++SourceFile,鍵入名稱main.cpp,在打開的main.cpp文件中,輸入以下程序代碼[6],保存后按F5執(zhí)行。

#include

#include

int main(int argc,char *argv[])

{ QApplication app(argc,argv);

QLabel label("HelloWorld");

label.show();

return app.exec();

}

HelloWorld實(shí)驗(yàn)結(jié)果顯示如圖1,證明文中所述離線安裝Qt的編譯方法切實(shí)可行。

參考文獻(xiàn)(References):

[1] Tuukka Turunen. Changing Qt Account to be Optional in the Online Installer[EB/OL]. [2020-7-11].https://www.qt.io/blog/2015/05/06/changing-qt-account-to-be-optional-in-the-online-installer.

[2] Petteri Holl?nder. Qt offering changes 2020[EB/OL].[2020-7-11].https://www.qt.io/blog/qt-offering-changes-2020.

[3] 下載 Windows 版和 Mac 版 Visual Studio 2019[EB/OL].[2020-7-11].https://visualstudio.microsoft.com/zh-hans/downloads/.

[4] Index of /official_releases[EB/OL]. [2020-7-11]. https://download.qt.io/official_releases/.

[5] The Qt Company Ltd. Qt 5.15 Tools and Versions - Qt Wiki[EB/OL].[2020-7-2].https://wiki.qt.io/Qt_5.15_Tools_and_Versions.

[6] 布蘭切特.C++ GUI QT 4編程(第2版)[M].電子工業(yè)出版社,2013.

猜你喜歡
環(huán)境用戶
長(zhǎng)期鍛煉創(chuàng)造體內(nèi)抑癌環(huán)境
一種用于自主學(xué)習(xí)的虛擬仿真環(huán)境
孕期遠(yuǎn)離容易致畸的環(huán)境
不能改變環(huán)境,那就改變心境
環(huán)境
孕期遠(yuǎn)離容易致畸的環(huán)境
關(guān)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
Camera360:拍出5億用戶
主站蜘蛛池模板: 国产欧美综合在线观看第七页| 国产在线视频福利资源站| 亚洲成a人在线观看| 黄色在线不卡| 2022精品国偷自产免费观看| 国产精品2| 成人福利在线观看| 国产精品va免费视频| 国产在线麻豆波多野结衣| 午夜综合网| 亚洲福利一区二区三区| 久久一级电影| 日本高清免费一本在线观看| 在线观看欧美精品二区| 久久人人97超碰人人澡爱香蕉| 亚洲国产天堂久久九九九| 国产精品久久久久久影院| 国产成人成人一区二区| 亚洲第一香蕉视频| 亚洲AⅤ综合在线欧美一区 | 国产免费久久精品44| AV无码无在线观看免费| 亚洲精品你懂的| 国产杨幂丝袜av在线播放| 婷婷久久综合九色综合88| 91小视频版在线观看www| 亚洲中文字幕23页在线| 秋霞国产在线| 制服丝袜一区二区三区在线| 国产亚洲精品91| 曰韩免费无码AV一区二区| 精品国产免费观看| 中国国产高清免费AV片| 视频一区亚洲| 精品国产www| 久久特级毛片| 国产女人18毛片水真多1| 波多野结衣一级毛片| 狠狠色婷婷丁香综合久久韩国| 国产在线视频自拍| 国产麻豆91网在线看| 亚洲天堂日本| 亚洲精品第一页不卡| 丁香婷婷久久| 亚洲乱亚洲乱妇24p| 91破解版在线亚洲| 综1合AV在线播放| 午夜视频在线观看区二区| 国产福利影院在线观看| 国产H片无码不卡在线视频| 亚州AV秘 一区二区三区| 国产一级视频在线观看网站| 亚洲看片网| 国产十八禁在线观看免费| 精品视频在线一区| 国产女人18水真多毛片18精品| 成人午夜视频网站| 超碰精品无码一区二区| 精品人妻AV区| 婷婷伊人五月| 97色伦色在线综合视频| 亚洲国产成人无码AV在线影院L| 国产 在线视频无码| 国产后式a一视频| 午夜日b视频| 四虎永久在线| 一级黄色欧美| 成人福利在线视频| 欧美精品一区二区三区中文字幕| 国产精品护士| 免费国产在线精品一区| 好紧太爽了视频免费无码| 欧美日本在线播放| 波多野结衣一区二区三视频| 国产成人1024精品| 一区二区三区成人| 亚洲精品桃花岛av在线| 刘亦菲一区二区在线观看| 高清色本在线www| 久久综合伊人77777| 久久香蕉国产线看观看亚洲片| 一级一级一片免费|