Qt開發之路14 專案( pro)檔案

2021-10-11 14:26:35 字數 2257 閱讀 2119

qmake是建立出來用於為不同的平台和編譯器書寫makefile的工具。手寫makefile是比較困難並且容易出錯的,尤其是需要給不同的平台和編譯器組合寫的makefile。使用qmake,開發者建立乙個簡單的專案檔案並且執行qmake生成適當的makefile。qmake會注意所有的編譯器和平台的依賴性,可以把開發者解放出來只關心他們的**。

qmake可以供任何乙個軟體專案使用,而不用管他是不是使用qt寫成的,儘管它包含了為支援qt開發所擁有的額外的特徵。

qmake使用儲存在專案(.pro)檔案中的資訊來決定makefile檔案中該生成什麼

在使用qt嚮導生成的應用程式.pro檔案格式如下:

qt       +

= core gui //模組的名字

greaterthan

(qt_major_version,4)

: qt +

= widgets

target = test //應用程式名

//原始檔

sources +

= main.cpp\

mainwindow.cpp

//標頭檔案

headers +

= mainwindow.h

//視窗設計檔案

forms +

= mainwindow.ui

.pro就是工程檔案(project),它是qmake自動生成的用於生產makefile的配置檔案。.pro檔案的寫法如下:

target = test	//應用程式名test
//標頭檔案

headers +

= mainwindow.h

//原始檔

sources +

= main.cpp\

mainwindow.cpp

//視窗設計檔案

forms +

= mainwindow.ui

resources +

= \ image.qrc

includepath +

= $$pwd/..

/3rd

libs +

=-l$$pwd/..

/3rd/

-ltestlib

config

(release)

:destdir = $$pwd/..

/bin

config

(debug, debug|release)

:destdir = $$pwd/..

/bin

defines +

= testdef_use

config +

= c++

11//使用c++11的特性

在這裡使用「+=」,是因為我們新增我們的配置選項到任何乙個已經存在中。這樣做比使用「=」那樣替換已經指定的所有選項更安全。

config配置變數指定了編譯器所要使用的選項和所需要被連線的庫。配置變數中可以新增任何東西,但只有下面這些選項可以被qmake識別

編譯器型別:

release : 應用程式將以release模式連編。如果「debug」被指定,它將被忽略

debug: 應用程式將以debug模式連編。

warn_on: 編譯器盡可能多得輸出警告資訊,如果「warn_off」被指定,它將被忽略

warn_off:編譯器盡可能少得輸出警告資訊。

config

(debug, debug|release):libs +

=-l.

./lib1 -lhellod

config

(release, debug|release):libs +

=-l.

./lib2 -lhello

我們在這裡需要做的是根據qmake所執行的平台來使用相應的作用域來進行處理。為windows平台新增的依賴平台的檔案的簡單的作用域看起來就像這樣:

win32
defines +

= test_1

#contains和

QT之專案檔案( pro)詳解

從 開始,到這一行結束。target qtdemo headers include painter.h forms forms painter.ui sources sources main.cpp sources painter.cpp resources qrc painter.qrc grea...

Qt 專案管理檔案 pro 詳解

圖 1 專案檔案的目錄樹 1 專案管理檔案 samp2 1.pro,儲存專案設定的檔案。2 主程式入口檔案 main.cpp,實現 main 函式的程式檔案。3 窗體介面檔案 widget.ui,乙個 xml 格式儲存的窗體上的元件及 其布局的檔案。4 widget.h 是所設計的窗體類的標頭檔案,...

Qt 之 pro 子專案開發

新建乙個工程,選擇 其他專案 選擇 子目錄專案 命名,建立乙個只有pro檔案作為目錄根節點的檔案。根pro檔案中的 template subdirs subdirs testtools mymenu abform 第二級pro中的 template subdirs subdirs afrom bfo...