• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

      2020-12-07 06:08:03謝逸軒馬維華
      計(jì)算機(jī)時(shí)代 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庫的整個(gè)過程。上述安裝和配置利用Qt Creator成功編譯并運(yùn)行基于Qt5.15的HelloWorld程序來予以驗(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++語言為基礎(chǔ)并帶有多種主流語言擴(kuò)展支持的,以圖形用戶界面為主要功能并附有其他系統(tǒng)資源控制類的,提供統(tǒng)一、直觀、強(qiáng)大API的庫函數(shù)集合。

      近年來,Qt公司嘗試通過強(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長期支持版以及離線安裝包[2]。這一措施給身處網(wǎng)絡(luò)環(huán)境不穩(wěn)定的國內(nèi)Qt用戶帶來了煩惱,國內(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庫,然后結(jié)合Qt Creator 4.12.3開發(fā)運(yùn)行基于Qt的HelloWorld程序。本文以嚴(yán)謹(jǐn)?shù)淖黠L(fēng),提出了一套行之有效的編譯環(huán)境準(zhǔn)備方法,并對(duì)編譯過程中所需時(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í)間和提高代碼利用率,第三方庫函數(shù)應(yīng)運(yùn)而生。但當(dāng)?shù)谌綆旌瘮?shù)強(qiáng)大到能實(shí)現(xiàn)某應(yīng)用領(lǐng)域通用完備功能的底層服務(wù)時(shí),我們一般稱之為軟件框架。Qt庫即是實(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的安裝

      訪問Qt官方資源庫[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/

      訪問Qt官方源碼庫,選擇最新版本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/

      訪問ActivePerl官方網(wǎng)站,選擇最新版本5.28,注冊(cè)并登錄后提供下載,保存的文件名為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的安裝程序。

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

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

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

      ⑴ OpenSSL

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

      由于OpenSSL官方僅提供源碼,從源碼編譯又需要其他的前置條件。這里直接提供可信任的、適用Windows的、預(yù)編譯的OpenSSL庫的下載鏈接。獲得名為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ù)編譯庫的下載。以后者為例,獲得名為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時(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的庫文件(不包括也能編譯),這里用-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ī)來運(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)安裝過程,大約需要15分鐘:

      nmake install

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

      首先,啟用編譯安裝的Qt庫。啟動(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)致非英語顯示語言環(huán)境下無法檢測(cè)到安裝的Visual Studio 2019 生成工具。此外,Qt Creator又不支持手動(dòng)添加MSVC編譯器,所以設(shè)置稍顯麻煩。目前已核實(shí)兩種方案均可解決此問題,一是卸載MSVC 2019生成工具,安裝Visual Studio 2019社區(qū)版;二是切換系統(tǒng)顯示語言為英語,重啟電腦后遵循上述路徑打開編譯器選項(xiàng)卡,將自動(dòng)檢測(cè)到的編譯工具(形如Microsoft Visual C++ Compiler 16.6.30225.117 (x86))一一按右側(cè)clone按鈕克隆一份(共八個(gè)),保存配置后改回中文顯示語言并重啟系統(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)鏈接庫搜索路徑。修改系統(tǒng)環(huán)境變量Path,追加Qt庫bin目錄的路徑(本例為C:\Qt\Qt-5.15.0\bin),以便系統(tǒng)在運(yùn)行用戶Qt程序時(shí)能夠定位Qt動(dòng)態(tài)鏈接庫。此外,將編譯Qt庫時(shí)通過解壓獲得的第三方動(dòng)態(tài)庫一并拷貝到Qt庫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.

      猜你喜歡
      安裝包源碼離線
      基于網(wǎng)頁源碼結(jié)構(gòu)理解的自適應(yīng)爬蟲代碼生成方法
      基于圖神經(jīng)網(wǎng)絡(luò)的軟件源碼漏洞檢測(cè)方法
      手機(jī)之間如何快速分享應(yīng)用安裝包
      異步電機(jī)離線參數(shù)辨識(shí)方法
      呼吸閥離線檢驗(yàn)工藝與評(píng)定探討
      企業(yè)如何保護(hù)源碼
      淺談ATC離線基礎(chǔ)數(shù)據(jù)的準(zhǔn)備
      離線富集-HPLC法同時(shí)測(cè)定氨咖黃敏膠囊中5種合成色素
      中成藥(2018年2期)2018-05-09 07:20:09
      另類解壓軟件安裝包
      電腦愛好者(2017年3期)2017-05-04 10:29:50
      基于數(shù)據(jù)結(jié)構(gòu)教輔系統(tǒng)的實(shí)驗(yàn)課程改革
      星座| 石嘴山市| 定州市| 九龙坡区| 洪洞县| 罗甸县| 澄迈县| 霍林郭勒市| 栾川县| 漠河县| 宜州市| 吴旗县| 沁源县| 绥芬河市| 信阳市| 溧水县| 丹阳市| 家居| 涞水县| 冀州市| 道真| 体育| 海晏县| 镇江市| 普格县| 翁源县| 宁化县| 汪清县| 集安市| 余姚市| 新乡市| 九龙坡区| 甘泉县| 凉城县| 军事| 阳曲县| 呼玛县| 新绛县| 区。| 柳州市| 衡山县|