Qt creator中項目的構建配置和運行設置的步驟

使用 Qt Creator 集成開發環境構建和運行程序是一件非常簡單的事情,一個按鈕或者一個快捷鍵搞定全部,大傢已經都瞭解瞭。但是,這些看起來簡單的過程,背後到底發生瞭什麼呢?

點擊 Qt Creator 項目模式,可以看到當前項目的配置界面:

Qt項目配置界面

在打開具體的項目之後,Qt Creator 的項目模式才會變得可用。對於打開的項目,比如 HelloWorld 項目,可配置的內容如上圖左側顯示的五大類,分別是“Build & Run(構建和運行)”“編輯器”“代碼風格”“依賴關系”“Clang Static Analyzer(Clang靜態分析)”,最常用的就是“Build & Run”。

對於每個 Qt 套件,又可以分別配置構建時環境、命令和運行時環境、命令。如果需要給生成的可執行程序如 *.exe 附加命令參數,那就可以點擊 Qt 套件名稱下方的“Run”設置,給可執行程序附加參數。下面重點關註“Build”設置。

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

影子構建(Shadow build)

接下來“概要”裡面,Qt Creator 默認使用影子構建方式(Shadow build),這種構建項目的方式是將構建過程中的中間文件和目標程序都放到獨立的構建目錄中,實現源代碼目錄和構建目錄的徹底分離,這對程序源代碼的發佈很方便,不會將構建過程中的中間文件混雜進來。

對於項目 HelloWorld ,它的源代碼路徑是 D:\QtDemo\HelloWorld,而上圖中影子構建的目錄是在 D:\QtDemo\build-HelloWorld-Desktop_Qt_5_9_0_MinGW_32bit-Debug,源碼文件夾和構建文件夾都在父文件夾 QtDemo 裡。

影子構建目錄的命名規則是:build-項目名-構建套件名-構建類型 。示范的項目名 HelloWorld,套件名 Desktop Qt 5.9.0 MinGW 32bit,構建類型為 Debug,合成之後的構建目錄裡不能帶空格和點號,所以把空格和點號都換成下劃線,得到 build-HelloWorld-Desktop_Qt_5_9_0_MinGW_32bit-Debug 。項目構建時生成的中間文件和最終的目標程序都可以在影子構建目錄裡找到。

構建步驟

接著是“構建步驟”,前面提到過 qmake 編譯程序的三板斧,因為 pro 文件已經由 Qt Creator 生成好瞭,所以這時候編譯程序隻需要剩下的兩板斧:
①用 qmake 生成 Makefile 到構建目錄;
②在構建目錄裡面執行 make (mingw32-make) 。

對於這兩板斧的細節可以點開 qmake 和 Make 兩行右邊的詳情進行查看,這裡不額外截圖瞭,僅解釋一下上圖中 qmake 命令的選項參數:

-r選項是指遞歸檢查項目文件夾的意思;
-spec win32-g++選項參數是指使用 win32-g++ 定制腳本來生成 Makefile,對於不同的編譯器和操作系統平臺會使用不同的定制腳本,win32-g++ 是專門針對 Windows 系統 MinGW 編譯環境的定制腳本(實際的定制腳本位於 QTDIR/mkspecs/win32-g++ 文件夾裡);
“CONFIG+=debug”是指生成 debug 類型的目標程序,對於優化發行版,對應的就是 “CONFIG+=release”,如果這兩個 CONFIG 都不加,那麼默認生成 release 類型的目標程序。

查看項目構建和項目運行時的實際情況

關於 Qt 項目構建的設置暫時介紹這些,接下來我們看看關於項目構建和項目運行時的實際情況。回到 Qt Creator 編輯模式,點擊最下面一排輸出面板裡的“編譯輸出”面板,可以看到生成項目過程中的編譯、鏈接命令:

Qt Creator編譯輸出面板

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

與“編譯輸出”面板相比,“應用程序輸出”面板更為常用,對於調試信息的輸出、打印到命令行的輸出等,Qt Creator 都會捕捉到,並顯示到“應用程序輸出”面板,如下圖所示:

在這裡插入圖片描述

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

運行設置

最後說明一下目標程序的運行環境,如果希望從集成開發環境為生成的目標程序加命令行參數,那麼需要用到項目模式的“運行設置”:

在這裡插入圖片描述

點擊“Run”按鈕,就會進入運行配置界面,可以看到上圖幾個關鍵的路徑和參數設置:
路徑/參數 說明
Executable 可執行程序路徑,或叫目標程序路徑,生成的 exe 文件為 D:\QtDemo\build-HelloWorld-Desktop_Qt_5_9_0_MinGW_32bit-Debug\debug\HelloWorld.exe,如果進入該路徑,直接運行 exe 文件,那麼 exe 文件默認是無法正常運行的,因為缺少運行時依賴的動態庫和環境變量。需要從開始菜單啟動 Qt 命令行,然後從命令行啟動 exe 才能正常運行。

Command line arguments 目標程序的命令行參數,可以在這裡手動添加命令行參數,這樣每次 Qt Creator 啟動目標程序時都會附加該參數。

Working directory 目標程序工作路徑,這裡需要特別註意,目標程序既不是從源代碼路徑啟動,也不是從它自己的可執行程序路徑啟動, 而是從工作路徑啟動,這個工作路徑默認與影子構建路徑一樣。 因此,如果在程序代碼裡面使用相對路徑操作文件,如 “data.db”,那麼這個文件應該放到工作路徑,這樣目標程序從 Qt Creator 啟動時,才能找到相對路徑裡的文件。

運行設置裡面還有一個重要的設置就是 Run Environment,運行時環境變量的設置,我們標出其中重要的變量如下:

在這裡插入圖片描述

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

第一個是編譯時依賴庫的路徑,第二個是 Qt 庫自己可執行程序和動態庫路徑,第三個是 MinGW 編譯環境的可執行程序和動態庫路徑。

除瞭 PATH 環境變量,Qt 庫專屬的 QTDIR 環境變量也很重要,Qt 程序運行時不僅依賴 *.dll ,還依賴 Qt 庫裡面的插件、翻譯文件、設置文件等等,QTDIR 是 Qt 庫的總目錄,Qt 程序根據這個總目錄自動去找尋子文件夾,子文件夾會包含 Qt 程序運行時依賴的其他東西。

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

到此這篇關於Qt creator中項目的構建配置和運行設置的步驟的文章就介紹到這瞭,更多相關Qt creator構建配置和運行設置內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: