Qtcreator中項目的構(gòu)建配置和運行設(shè)置的步驟_第1頁
Qtcreator中項目的構(gòu)建配置和運行設(shè)置的步驟_第2頁
Qtcreator中項目的構(gòu)建配置和運行設(shè)置的步驟_第3頁
Qtcreator中項目的構(gòu)建配置和運行設(shè)置的步驟_第4頁
Qtcreator中項目的構(gòu)建配置和運行設(shè)置的步驟_第5頁
全文預覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

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

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

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

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

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

影子構(gòu)建(Shadowbuild)

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

對于項目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-項目名-構(gòu)建套件名-構(gòu)建類型。示范的項目名HelloWorld,套件名DesktopQt5.9.0MinGW32bit,構(gòu)建類型為Debug,合成之后的構(gòu)建目錄里不能帶空格和點號,所以把空格和點號都換成下劃線,得到build-HelloWorld-Desktop_Qt_5_9_0_MinGW_32bit-Debug。項目構(gòu)建時生成的中間文件和最終的目標程序都可以在影子構(gòu)建目錄里找到。

接著是“構(gòu)建步驟”,前面提到過qmake編譯程序的三板斧,因為pro文件已經(jīng)由QtCreator生成好了,所以這時候編譯程序只需要剩下的兩板斧:

①用qmake生成Makefile到構(gòu)建目錄;

②在構(gòu)建目錄里面執(zhí)行make(mingw32-make)。

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

-r選項是指遞歸檢查項目文件夾的意思;

-specwin32-g++選項參數(shù)是指使用win32-g++定制腳本來生成Makefile,對于不同的編譯器和操作系統(tǒng)平臺會使用不同的定制腳本,win32-g++是專門針對Windows系統(tǒng)MinGW編譯環(huán)境的定制腳本(實際的定制腳本位于QTDIR/mkspecs/win32-g++文件夾里);

"CONFIG+=debug"是指生成debug類型的目標程序,對于優(yōu)化發(fā)行版,對應(yīng)的就是“CONFIG+=release”,如果這兩個CONFIG都不加,那么默認生成release類型的目標程序。

查看項目構(gòu)建和項目運行時的實際情況

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

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

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

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

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

點擊“Run”按鈕,就會進入運行配置界面,可以看到上圖幾個關(guān)鍵的路徑和參數(shù)設(shè)置:

路徑/參數(shù)說明

Executable可執(zhí)行程序路徑,或叫目標程序路徑,生成的exe文件為D:\QtDemo\build-HelloWorld-Desktop_Qt_5_9_0_MinGW_32bit-Debug\debug\HelloWorld.exe,如果進入該路徑,直接運行exe文件,那么exe文件默認是無法正常運行的,因為缺少運行時依賴的動態(tài)庫和環(huán)境變量。需要從開始菜單啟動Qt命令行,然后從命令行啟動exe才能正常運行。

Commandlinearguments目標程序的命令行參數(shù),可以在這里手動添加命令行參數(shù),這樣每次QtCreator啟動目標程序時都會附加該參數(shù)。

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

運行設(shè)置里面還有一個重要的設(shè)置就是RunEnvironment,運行時環(huán)境變量的設(shè)置,我們標出其中重要的變量如下:

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

D:\Qt\5.9\mingw53_32\lib;

D:\Qt\5.9\mingw53_32\bin;

D:\Qt\Tools\mingw530_32\bin;

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論