溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Qt?creator中項(xiàng)目構(gòu)建配置和運(yùn)行設(shè)置是怎么樣的

發(fā)布時(shí)間:2022-03-04 11:05:13 來源:億速云 閱讀:309 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹了Qt creator中項(xiàng)目構(gòu)建配置和運(yùn)行設(shè)置是怎么樣的,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

使用 Qt Creator 集成開發(fā)環(huán)境構(gòu)建和運(yùn)行程序是一件非常簡單的事情,一個(gè)按鈕或者一個(gè)快捷鍵搞定全部,大家已經(jīng)都了解了。但是,這些看起來簡單的過程,背后到底發(fā)生了什么呢?

點(diǎn)擊 Qt Creator 項(xiàng)目模式,可以看到當(dāng)前項(xiàng)目的配置界面:

Qt?creator中項(xiàng)目構(gòu)建配置和運(yùn)行設(shè)置是怎么樣的

在打開具體的項(xiàng)目之后,Qt Creator 的項(xiàng)目模式才會變得可用。對于打開的項(xiàng)目,比如 HelloWorld 項(xiàng)目,可配置的內(nèi)容如上圖左側(cè)顯示的五大類,分別是“Build & Run(構(gòu)建和運(yùn)行)”“編輯器”“代碼風(fēng)格”“依賴關(guān)系”“Clang Static Analyzer(Clang靜態(tài)分析)”,最常用的就是“Build & Run”。

對于每個(gè) Qt 套件,又可以分別配置構(gòu)建時(shí)環(huán)境、命令和運(yùn)行時(shí)環(huán)境、命令。如果需要給生成的可執(zhí)行程序如 *.exe 附加命令參數(shù),那就可以點(diǎn)擊 Qt 套件名稱下方的“Run”設(shè)置,給可執(zhí)行程序附加參數(shù)。下面重點(diǎn)關(guān)注“Build”設(shè)置。

在“Build”設(shè)置里,上方組合框里可以選擇構(gòu)建類型(Debug、Release 或者 Profile),并且可以自己添加新的構(gòu)建類型(一般沒必要)。

影子構(gòu)建(Shadow build)

接下來“概要”里面,Qt Creator 默認(rèn)使用影子構(gòu)建方式(Shadow build),這種構(gòu)建項(xiàng)目的方式是將構(gòu)建過程中的中間文件和目標(biāo)程序都放到獨(dú)立的構(gòu)建目錄中,實(shí)現(xiàn)源代碼目錄和構(gòu)建目錄的徹底分離,這對程序源代碼的發(fā)布很方便,不會將構(gòu)建過程中的中間文件混雜進(jìn)來。

對于項(xiàng)目 HelloWorld ,它的源代碼路徑是 D:\QtDemo\HelloWorld,而上圖中影子構(gòu)建的目錄是在 D:\QtDemo\build-HelloWorld-Desktop_Qt_5_9_0_MinGW_32bit-Debug,源碼文件夾和構(gòu)建文件夾都在父文件夾 QtDemo 里。

影子構(gòu)建目錄的命名規(guī)則是:build-項(xiàng)目名-構(gòu)建套件名-構(gòu)建類型 。示范的項(xiàng)目名 HelloWorld,套件名 Desktop Qt 5.9.0 MinGW 32bit,構(gòu)建類型為 Debug,合成之后的構(gòu)建目錄里不能帶空格和點(diǎn)號,所以把空格和點(diǎn)號都換成下劃線,得到 build-HelloWorld-Desktop_Qt_5_9_0_MinGW_32bit-Debug 。項(xiàng)目構(gòu)建時(shí)生成的中間文件和最終的目標(biāo)程序都可以在影子構(gòu)建目錄里找到。

構(gòu)建步驟

接著是“構(gòu)建步驟”,前面提到過 qmake 編譯程序的三板斧,因?yàn)?pro 文件已經(jīng)由 Qt Creator 生成好了,所以這時(shí)候編譯程序只需要剩下的兩板斧:
①用 qmake 生成 Makefile 到構(gòu)建目錄;
②在構(gòu)建目錄里面執(zhí)行 make (mingw32-make) 。

對于這兩板斧的細(xì)節(jié)可以點(diǎn)開 qmake 和 Make 兩行右邊的詳情進(jìn)行查看,這里不額外截圖了,僅解釋一下上圖中 qmake 命令的選項(xiàng)參數(shù):

-r選項(xiàng)是指遞歸檢查項(xiàng)目文件夾的意思;
-spec win32-g++選項(xiàng)參數(shù)是指使用 win32-g++ 定制腳本來生成 Makefile,對于不同的編譯器和操作系統(tǒng)平臺會使用不同的定制腳本,win32-g++ 是專門針對 Windows 系統(tǒng) MinGW 編譯環(huán)境的定制腳本(實(shí)際的定制腳本位于 QTDIR/mkspecs/win32-g++ 文件夾里);
"CONFIG+=debug"是指生成 debug 類型的目標(biāo)程序,對于優(yōu)化發(fā)行版,對應(yīng)的就是 “CONFIG+=release”,如果這兩個(gè) CONFIG 都不加,那么默認(rèn)生成 release 類型的目標(biāo)程序。

查看項(xiàng)目構(gòu)建和項(xiàng)目運(yùn)行時(shí)的實(shí)際情況

關(guān)于 Qt 項(xiàng)目構(gòu)建的設(shè)置暫時(shí)介紹這些,接下來我們看看關(guān)于項(xiàng)目構(gòu)建和項(xiàng)目運(yùn)行時(shí)的實(shí)際情況?;氐?Qt Creator 編輯模式,點(diǎn)擊最下面一排輸出面板里的“編譯輸出”面板,可以看到生成項(xiàng)目過程中的編譯、鏈接命令:

Qt?creator中項(xiàng)目構(gòu)建配置和運(yùn)行設(shè)置是怎么樣的

Qt Creator 實(shí)際使用的編譯鏈接命令比我們之前演示的編譯鏈接命令復(fù)雜太多了,之前使用的是極度精簡的命令。如果項(xiàng)目的編譯鏈接沒有出問題,不用太在意“編譯輸出”面板里的東西,如果編譯鏈接過程出錯了,就需要查看“編譯輸出”面板里的問題了。雖然 Qt Creator 編譯鏈接命令復(fù)雜,但大致過程和《Qt .ui文件的使用》最后那張生成過程圖是類似的。

與“編譯輸出”面板相比,“應(yīng)用程序輸出”面板更為常用,對于調(diào)試信息的輸出、打印到命令行的輸出等,Qt Creator 都會捕捉到,并顯示到“應(yīng)用程序輸出”面板,如下圖所示:

Qt?creator中項(xiàng)目構(gòu)建配置和運(yùn)行設(shè)置是怎么樣的

“應(yīng)用程序輸出”面板標(biāo)題欄位置還有些小按鈕,感興趣的讀者可以自己試試,有清空輸出內(nèi)容、重新運(yùn)行程序、停止當(dāng)前運(yùn)行程序之類快捷功能。

運(yùn)行設(shè)置

最后說明一下目標(biāo)程序的運(yùn)行環(huán)境,如果希望從集成開發(fā)環(huán)境為生成的目標(biāo)程序加命令行參數(shù),那么需要用到項(xiàng)目模式的“運(yùn)行設(shè)置”:

Qt?creator中項(xiàng)目構(gòu)建配置和運(yùn)行設(shè)置是怎么樣的

點(diǎn)擊“Run”按鈕,就會進(jìn)入運(yùn)行配置界面,可以看到上圖幾個(gè)關(guān)鍵的路徑和參數(shù)設(shè)置:
路徑/參數(shù) 說明
Executable 可執(zhí)行程序路徑,或叫目標(biāo)程序路徑,生成的 exe 文件為 D:\QtDemo\build-HelloWorld-Desktop_Qt_5_9_0_MinGW_32bit-Debug\debug\HelloWorld.exe,如果進(jìn)入該路徑,直接運(yùn)行 exe 文件,那么 exe 文件默認(rèn)是無法正常運(yùn)行的,因?yàn)槿鄙龠\(yùn)行時(shí)依賴的動態(tài)庫和環(huán)境變量。需要從開始菜單啟動 Qt 命令行,然后從命令行啟動 exe 才能正常運(yùn)行。

Command line arguments 目標(biāo)程序的命令行參數(shù),可以在這里手動添加命令行參數(shù),這樣每次 Qt Creator 啟動目標(biāo)程序時(shí)都會附加該參數(shù)。

Working directory 目標(biāo)程序工作路徑,這里需要特別注意,目標(biāo)程序既不是從源代碼路徑啟動,也不是從它自己的可執(zhí)行程序路徑啟動, 而是從工作路徑啟動,這個(gè)工作路徑默認(rèn)與影子構(gòu)建路徑一樣。 因此,如果在程序代碼里面使用相對路徑操作文件,如 “data.db”,那么這個(gè)文件應(yīng)該放到工作路徑,這樣目標(biāo)程序從 Qt Creator 啟動時(shí),才能找到相對路徑里的文件。

運(yùn)行設(shè)置里面還有一個(gè)重要的設(shè)置就是 Run Environment,運(yùn)行時(shí)環(huán)境變量的設(shè)置,我們標(biāo)出其中重要的變量如下:

Qt?creator中項(xiàng)目構(gòu)建配置和運(yùn)行設(shè)置是怎么樣的

讀者一般對 PATH 環(huán)境變量比較熟悉,就是大量可執(zhí)行程序 *.exe 和依賴庫 *.dll 的路徑,程序啟動時(shí)會從 PATH 環(huán)境變量找尋依賴的 dll 并加載。Qt 也為 PATH 添加了自己的依賴庫路徑,新增的有三個(gè)路徑:
D:\Qt\5.9\mingw53_32\lib;
D:\Qt\5.9\mingw53_32\bin;
D:\Qt\Tools\mingw530_32\bin;

第一個(gè)是編譯時(shí)依賴庫的路徑,第二個(gè)是 Qt 庫自己可執(zhí)行程序和動態(tài)庫路徑,第三個(gè)是 MinGW 編譯環(huán)境的可執(zhí)行程序和動態(tài)庫路徑。

除了 PATH 環(huán)境變量,Qt 庫專屬的 QTDIR 環(huán)境變量也很重要,Qt 程序運(yùn)行時(shí)不僅依賴 *.dll ,還依賴 Qt 庫里面的插件、翻譯文件、設(shè)置文件等等,QTDIR 是 Qt 庫的總目錄,Qt 程序根據(jù)這個(gè)總目錄自動去找尋子文件夾,子文件夾會包含 Qt 程序運(yùn)行時(shí)依賴的其他東西。

如果讀者希望把 Qt 的依賴庫集成到操作系統(tǒng)的環(huán)境變量,那么不僅要設(shè)置 PATH,還要設(shè)置正確的 QTDIR。QTIDR 通常就是 qmake.exe 所在文件夾的父文件夾,比如 qmake.exe 位于 D:\Qt\5.9\mingw53_32\bin,那么 QTDIR 就是 D:\Qt\5.9\mingw53_32 。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Qt creator中項(xiàng)目構(gòu)建配置和運(yùn)行設(shè)置是怎么樣的”這篇文章對大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI