Qt的.pro檔案格式解析
在Qt中用qmake生成makefile檔案,它是由.pro檔案生成而來的,.pro檔案的具體格式語法如下:
1.註釋
.pro檔案中註釋採用#號,從“#”號開始,到該行的結束,例如:
2.模板TEMPLATE
模板變數告訴qmake為這個應用程式生成那種makefile檔案。下面是可提供使用的選擇:
TEMPLATE=app
- app-建立一個應用程式的makefile。這是個預設值,所以如果模板沒有被指定,該模板將會被使用。
- lib -建立一個庫的makefile。
- vcapp -建立一個應用程式的Visual Studio專案檔案。
- vclib -建立一個庫的VisualStudio專案檔案。
- subdirs -這是一個特殊的模板,它可以建立一個能夠進入特定目錄並且為一個專案檔案生成makefile,並且為它呼叫make的makefile。
3.新增檔案路徑
-
HEADERS +=
用來新增標頭檔案 -
SOURCES +=
用來新增原始檔 -
FORMS +=
用來新增 ui 檔案 -
RESOURCES +=
用來新增資原始檔 -
INCLUDEPATH +=
用來存放新增標頭檔案的路徑 -
DEPENDPATH +=
用來新增依賴相關路徑 -
LIBS +=
用來新增庫檔案
注意:
INCLUDEPATH一般用在新增第三方 .dll 的時候所需的標頭檔案路徑;
HEADERS用來新增當前專案的路徑;
LIBS += -LC:/Windows/System32/ -luser32
格式為:-L 路徑 -l 庫名
庫比較多的時候可以用 \來達到換行目的
引用相對路徑的庫檔案的時候,$$PWD 指的是專案 .pro 檔案所在的路徑,`$$OUT_PWD` 指的是編譯的目標所在的路徑。如果不清楚路徑,可以使用 message($$PWD) 列印路徑檢視絕對路徑。
DESTDIR +=
指定生成的應用程式的存放目錄。TARGET =
指定生成的應用程式的名字。UI_DIR +=
用來存放編譯的時候 ui 生成的 ui_*.h 檔案。RCC_DIR +=
存放 .qrc 生成的 qrc_*.h 檔案。MOC_DIR +=
用來存放 moc 命令轉換新增的Q_OBJECT
的 .h 檔案為標準 .h 檔案的存放路徑。OBJECTS_DIR +=
用來存放目標檔案 .obj 存放的路徑。
注:
UI_DIR
、RCC_DIR
、 MOC_DIR
、OBJECTS_DIR
可以認為都是用來存放中間檔案,只是存放的中間檔案有所不同,不指定的話預設會存放在 .pro 檔案所在的路徑,顯得工程看起來比較亂
4.新增配置資訊
CONFIG +=
用來指的應用程式的配置資訊。
引數 | 說明 |
---|---|
release | 專案被聯編為一個釋出的應用程式 |
debug | 專案被聯編為一個debug的應用程式,debug 和 release 同時設定的時候,最後面的一個生效 |
debug_and_release | 專案被聯編為 debug 和 release |
warn_on | 編譯器輸出儘可能多的警告資訊 |
c++11 | 支援 c++11 的標準 |
thread | 支援執行緒,當 CONFIG 引數包含 qt 的時候,這個是預設支援的 |
5.例項
TEMPLATE = app
LANGUAGE = C++
QT += widgets xml sql network opengl
CONFIG += qt warn_on release
HEADERS += *.h
SOURCES += *.cpp
FORMS += *.ui
RESOURCES += \
DiffusionFilter.qrc