QT pro文件詳細寫法+實例
很多的初學者都沒有註意pro 文件的內容 今天簡單的介紹一下 這個文件主要內容
TEMPLATE:這個變量是用來定義你的工程將被編譯成什麽模式。如果沒有這個設置,系統將默認編譯為application。
TEMPLATE=app表示這個project將被編譯成一個應用程序(application)
lib(生成庫的Makefile)
subdirs(生成有多級目錄管理的Makefile),
vcapp,vclib,vcsubdirs(對應Windows 下面VC)
TARGET:生成最後目標的名字
DESTDIR:指定生成目標的路徑
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
Eg:
CONFIG+=debug_and_release
CONFIG(debug,debug|release){
TARGET= hello
DESTDIR= ./debug
}else{
TARGET= hello
DESTDIR= ./release
}
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。
Eg:
在Windows和Linux的動態庫文件格式是不一樣的。一個是lib文件一個是so文件
win32:LIBS+= ./mitab/mitab_i.lib
unix:LiBS+= ./mitab/libmitab.so
eg:
win32{
SOURCES+= hello_win.cpp //win平臺
}
unix{
SOURCES+= hello_win.cpp //unix/linux平臺
}
以通過在其它任何一個變量的變量名前加$$來把這個變量的值分配給當前的變量。例如:
MY_DEFINES= $$DEFINE #將DEFINE的值分配給MY_DEFINES
QT pro文件詳細寫法+實例