国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

2020-12-07 06:08謝逸軒馬維華
計算機時代 2020年11期
關(guān)鍵詞:安裝包源碼離線

謝逸軒 馬維華

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

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

中圖分類號:TP312? ? ? ? ? 文獻標(biāo)識碼:A? ? ?文章編號: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是一個開源和商業(yè)授權(quán)并進的、以跨平臺框架著稱的,以C++語言為基礎(chǔ)并帶有多種主流語言擴展支持的,以圖形用戶界面為主要功能并附有其他系統(tǒng)資源控制類的,提供統(tǒng)一、直觀、強大API的庫函數(shù)集合。

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

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

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

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

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

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

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

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

1.2 工具鏈——MSVC 2019的安裝

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

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

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

1.3.1 源碼獲取

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

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

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

⑴ ActivePerl

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

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

典型安裝即可。

⑵ Python

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

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

安裝時注意勾選Add python.exe to Path選項,其余默認即可。

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

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

⑴ OpenSSL

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

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

⑵ MySQL

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

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

⑶ PostgreSQL

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

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

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

⑷ LLVM(clang)

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

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

1.3.4 配置

用管理員權(quán)限打開CMD或者PowerShell,運行以下命令設(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)建默認安裝目錄,確保至少有10GB可用空間。

MKDIRC:\Qt\Qt-5.15.0

REM在D盤創(chuàng)建編譯目錄以保護源碼目錄的整潔,確保至少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ù)計耗時兩分鐘。

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

%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

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

1.3.5 編譯

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

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

nmake

1.3.6 安裝

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

nmake install

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

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

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

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

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

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

打開Qt Creator,新建其他項目的empty qmake Project,鍵入項目名稱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實驗結(jié)果顯示如圖1,證明文中所述離線安裝Qt的編譯方法切實可行。

參考文獻(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.

猜你喜歡
安裝包源碼離線
基于網(wǎng)頁源碼結(jié)構(gòu)理解的自適應(yīng)爬蟲代碼生成方法
手機之間如何快速分享應(yīng)用安裝包
異步電機離線參數(shù)辨識方法
呼吸閥離線檢驗工藝與評定探討
企業(yè)如何保護源碼
淺談ATC離線基礎(chǔ)數(shù)據(jù)的準(zhǔn)備
離線富集-HPLC法同時測定氨咖黃敏膠囊中5種合成色素
另類解壓軟件安裝包
基于數(shù)據(jù)結(jié)構(gòu)教輔系統(tǒng)的實驗課程改革
CentOS用yum方式裝MySQL
西畴县| 清原| 牡丹江市| 柳林县| 安塞县| 义乌市| 隆子县| 崇礼县| 广丰县| 乌拉特前旗| 梅河口市| 晋宁县| 阿鲁科尔沁旗| 贵港市| 沿河| 区。| 彰化市| 武强县| 虎林市| 彩票| 白玉县| 枞阳县| 苏州市| 龙江县| 云安县| 乾安县| 时尚| 高台县| 湖北省| 平乡县| 绵阳市| 靖江市| 西充县| 靖边县| 绍兴市| 邛崃市| 盐池县| 三原县| 大姚县| 昭平县| 周宁县|