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億用戶
主站蜘蛛池模板: 日本一本正道综合久久dvd| 波多野结衣AV无码久久一区| 亚洲熟妇AV日韩熟妇在线| 美女免费黄网站| 日日摸夜夜爽无码| 久久黄色小视频| 中文字幕中文字字幕码一二区| 伊人91视频| 亚洲人妖在线| 日本伊人色综合网| 日本91视频| 国产精品成人AⅤ在线一二三四| 免费无码一区二区| 毛片基地视频| 丝袜美女被出水视频一区| 欧美午夜在线视频| 亚洲综合18p| 亚洲成A人V欧美综合天堂| 国产精品欧美在线观看| 亚洲三级影院| WWW丫丫国产成人精品| 欧美精品另类| 亚洲人成网18禁| 国产日韩欧美视频| 中文无码毛片又爽又刺激| 亚洲欧洲日韩综合| 热99re99首页精品亚洲五月天| 国产精品不卡片视频免费观看| 国产欧美日韩精品第二区| 婷婷色一区二区三区| 久久精品视频一| 国产另类视频| 国产色网站| 色婷婷啪啪| 99久久精品免费看国产免费软件| 欧美成人综合视频| 国产精品毛片在线直播完整版| 看国产一级毛片| 久久亚洲国产视频| 性69交片免费看| 欧美综合成人| 在线欧美日韩国产| 免费一级全黄少妇性色生活片| 女人一级毛片| 国产第二十一页| 五月天福利视频| 精品一区二区三区自慰喷水| 久久久久久久久久国产精品| 国产精品黑色丝袜的老师| 欧美性猛交xxxx乱大交极品| 一区二区三区四区日韩| 情侣午夜国产在线一区无码| 日韩AV手机在线观看蜜芽| 国产美女在线免费观看| 欧美另类图片视频无弹跳第一页| 尤物精品视频一区二区三区| 青青草原国产av福利网站| 不卡网亚洲无码| 欧日韩在线不卡视频| 亚洲美女一区| 欧美国产日韩另类| 国产在线精彩视频二区| 国产一区二区免费播放| 国产一区成人| 97在线公开视频| 国产精品女同一区三区五区| 四虎影视国产精品| 日韩大乳视频中文字幕| 亚洲全网成人资源在线观看| 伊人久久综在合线亚洲2019| 狼友av永久网站免费观看| 亚洲国产综合自在线另类| 日韩无码一二三区| 国产AV毛片| 国产精品自拍合集| 99热这里只有精品免费| 日韩一区精品视频一区二区| 国产成人一区免费观看| 成年人视频一区二区| 亚洲精品无码人妻无码| 国产精品视频久| 日本欧美精品|