中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Qt?creator中項目構建配置和運行設置是怎么樣的

發布時間:2022-03-04 11:05:13 來源:億速云 閱讀:313 作者:小新 欄目:開發技術

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

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

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

Qt?creator中項目構建配置和運行設置是怎么樣的

在打開具體的項目之后,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 都會捕捉到,并顯示到“應用程序輸出”面板,如下圖所示:

Qt?creator中項目構建配置和運行設置是怎么樣的

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

運行設置

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

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,運行時環境變量的設置,我們標出其中重要的變量如下:

Qt?creator中項目構建配置和運行設置是怎么樣的

讀者一般對 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中項目構建配置和運行設置是怎么樣的”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

文登市| 通渭县| 芦溪县| 古浪县| 景宁| 正蓝旗| 虎林市| 友谊县| 玛沁县| 三亚市| 德化县| 祁连县| 彭阳县| 繁昌县| 观塘区| 和顺县| 洞口县| 达孜县| SHOW| 天长市| 望谟县| 崇仁县| 茌平县| 阿瓦提县| 安达市| 淮南市| 嵊州市| 马鞍山市| 石城县| 申扎县| 贵州省| 南昌市| 稷山县| 旬阳县| 昌宁县| 镇平县| 临安市| 油尖旺区| 富源县| 鄄城县| 萨迦县|