QT Creator中的pro檔案解釋說明
在QT中使用qmake自動生成pro檔案,如果要自己定製工程選項,則需要自行修改pro檔案。
pro檔案有以下關鍵字:TEMPLATE、TARGET、DESTDIR、DEPENDPATH、INCLUDEPATH、SOURCES、HEADERS、FORMS、LIBS、TRASHLATIONS、RESOURCES、CONFIG、UI_DIR、RCC_DIR、MOC_DIR、OBJECTS_DIR、DEFINES。
其中:TEMPLATE變數定義了工程的編譯模式,預設編譯為app。TEMPLATE可以為:app、lib(庫)、subdirs(多級目錄管理)等。
TARGET:生成目標的名字。如:TARGET = mylib
DESTDIR:生成目標的路徑。如:DESTDIR = ../bin/ 則目標檔案的路徑為當前pro檔案所在目錄的上一級的bin目錄下
DEPENDPATH:工程的依賴路徑
INCLUDEPATH:指定工程要用到的標頭檔案路徑,一般包括使用者自定義的標頭檔案路徑或沒有放入系統標頭檔案路徑的標頭檔案路徑
SOURCES:工程需要的原始檔
HEADERS:工程所需要的標頭檔案,一般包括使用者自定義的標頭檔案或未放入系統標頭檔案路徑的標頭檔案
FORMS:工程要用到的ui檔案(ui檔案時用QT設計器生成的)
LIBS:載入動態庫檔案。如:LIBS+=./mitab/libmitab.so
TRASHLATIONS:載入要用到的語言翻譯*.ts檔案
RESOURCES:載入要用到的資源*.qrc檔案
CONFIG:告訴qmake應用程式的配置資訊:這個變數可以用來指定是生成debug模式還是release模式,也可以都生成;也可以用來開啟編譯器警告(warn_on輸出儘可能多的警告資訊)或者關閉(warn_off -編譯器會輸出儘可能少的警告資訊);還可以用來配置要Qt載入庫,例如如果要用到Qt的多執行緒,則:CONFIG+=qt thread再例如配置debug或release模式: CONFIG +=debug_and_release CONFIG(debug,debug|release){ TARGET= hello DESTDIR= ./debug }else{ TARGET= hello DESTDIR= ./release } 如果你要在windows下面執行console:CONFIG +=console
UI_DIR:UIC將ui轉化為標頭檔案所存放的目錄
RCC_DIR:RCC將qrc檔案轉化為標頭檔案所存放的目錄;
MOC_DIR:MOC命令將含Q_OBJECT的標頭檔案轉換為標準的標頭檔案存放的目錄;
OBJECTS_DIR:生成的目標檔案存放的目錄;
DEFINES:應用程式所需的額外的預處理程式定義的列表#在.h檔案中就可以使用:#ifdefinexx_xx_xxx;
LIBS += -L folderPath //引入的lib檔案的路徑 -L:引入路徑
Release:LIBS+= -L folderPath // release 版引入的lib檔案路徑
Debug:LIBS+= -L folderPath // Debug 版引入的lib 檔案路徑
RC_FILE = xxx.icns //程式中所用到的圖片等資原始檔;
QT是跨平臺的,所以我們在不同的平臺上用同一個pro檔案,這要加入有關平臺的資訊。windows平臺是win32,Linux平臺是unix。 例如在Windows和Linux的動態庫檔案格式是不一樣的,一個是lib檔案一個是so檔案:win32:LIBS+= ./mitab/mitab_i.lib unix:LiBS+= ./mitab/libmitab.so 再如:win32{SOURCES+= hello_win.cpp //win平臺} unix{SOURCES+= hello_linux.cpp //unix/linux平臺}
可以通過在其它任何一個變數的變數名前加$$來把這個變數的值分配給當前的變數,例如:MY_DEFINES= $$DEFINE #將DEFINE的值分配給MY_DEFINES 又如: TARGET = myapp UI_DIR = ../bin/$$TARGET/ui MOC_DIR = ../bin/$$TARGET/moc OBJECTS_DIR = ../bin/$$TARGET/objects 則uic所生成的檔案在路徑../bin/myapp/ui目錄下;moc檔案在../bin/myapp/moc目錄下;obj目標檔案在../bin/myapp/objects目錄下。