QT的項目管理文件pro的編寫
轉載自:http://www.cnblogs.com/SamRichard/p/3530640.html在QT中,有一個工具qmake可以生成一個makefile文件,它是由項目管理文件pro文件生成而來,pro文件的寫法見下表。
|
qmake變量 |
說明 |
舉例 |
|
#xxxx |
注釋,從“#”開始,到這一行結束 |
#for windows |
|
TEMPLATE |
模塊設置 |
TEMPLATE = app |
|
app(生成應用程序)( 默認、常用) |
||
|
lib(生成庫文件)(常用) |
||
|
vcapp -建立一個應用程序的VisualStudio項目文件 |
||
|
vclib -建立一個庫的VisualStudio項目文件 |
||
|
subdirs(生成makefile文件編譯subdirs指定的子文件夾)(不常用) |
||
|
DESTDIR |
指定生成的應用程序放置的目錄(建議用相對目錄) |
DESTDIR += ../bin |
|
TARGET |
指定目標文件名(建議跟項目文件同名) |
TARGET = filename |
|
如果不設置該項目,目標名會被自動設置為跟項目文件一樣的名稱 |
||
|
CONFIG |
配置信息 |
CONFIG+= qt warn_on release |
|
編譯器標志: |
||
|
release -應用程序將以release模式連編。如果“debug”被指定,它將被忽略。 |
||
|
debug - 應用程序將以debug模式連編。 |
||
|
warn_on -編譯器會輸出盡可能多的警告信息。如果“warn_off”被指定,它將被忽略。 |
||
|
warn_off -編譯器會輸出盡可能少的警告信息。 |
||
|
連編的庫/應用程序的類型: |
||
|
qt - 應用程序是一個Qt應用程序,并且Qt庫將會被連接。 |
||
|
thread - 應用程序是一個多線程應用程序。 |
||
|
x11 - 應用程序是一個X11應用程序或庫。 |
||
|
windows -只用于“app”模板:應用程序是一個Windows下的窗口應用程序。 |
||
|
console -只用于“app”模板:應用程序是一個Windows下的控制臺應用程序。 |
||
|
dll - 只用于“lib”模板:庫是一個共享庫(dll)。 |
||
|
staticlib -只用于“lib”模板:庫是一個靜態庫。 |
||
|
plugin - 只用于“lib”模板:庫是一個插件,這將會使dll選項生效。 |
||
|
QT |
加入庫模塊 |
QT += xml |
|
UI_DIR |
指定uic命令將.ui文件轉化成ui_*.h文件的存放的目錄 |
UI_DIR += forms |
|
RCC_DIR |
指定rcc命令將.qrc文件轉換成qrc_*.h文件的存放目錄 |
RCC_DIR += ../tmp |
|
INCLUDEPATH |
頭文件包含路徑 |
INCLUDEPATH += . |
|
HEADERS |
指定頭文件 |
HEADERS = hello.h |
|
HEADERS += hello.h |
||
|
SOURCES |
指定源文件 |
SOURCES = *.cpp |
|
對于多源文件,可用空格分開 |
SOURCES = 1.cpp 2.cpp 3.cpp |
|
|
或者每一個文件可以被列在一個分開的行里面,通過反斜線另起一行 |
SOURCES = hello.cpp \ |
|
|
一個更冗長的方法是單獨地列出每一個文件,就像這樣 |
SOURCES += hello.cpp |
|
|
FORMS |
工程中包含的.ui設計文件 |
FORMS += forms/painter.ui |
|
RESOURCES |
工程中包含的資源文件 |
RESOURCES += qrc/painter.qrc |
|
OBJECTS_DIR |
指定目標文件(obj)的存放目錄 |
OBJECTS_DIR += ../tmp |
|
INTERFACES |
添加界面文件(ui) |
INTERFACES = filename.ui |
|
MOC_DIR |
指定moc命令將含Q_OBJECT的頭文件轉換成標準.h文件的存放目錄 |
MOC_DIR += ../tmp |
|
DEPENDPATH |
程序編譯時依賴的相關路徑 |
DEPENDPATH += . forms include qrc sources |
|
CODECFORSRC |
源文件編碼方式 |
CODECFORSRC = GBK |
|
win32{…} |
平臺相關性處理 |
win32 { |
|
LANGUAGE |
編程語言 |
LANGUAGE = C++ |
|
exists |
!exists:如果一個文件不存在,停止qmake |
!exists( main.cpp ) { |
|
LIBS |
LIBS += -L folderPath //引入的lib文件的路徑-L:引入路徑 |
LIBS += -L"$(OutDir)" \ |
如下為一個典型的pro文件:
TEMPLATE = app //模塊設置,生成應用程序
TARGET = pm //指定為pm的目標文件
CONFIG += qt warn_on //配置信息,應用程序是一個Qt應用程序,編譯器會輸出盡可能多的警告信息
win32:CONFIG += debug_and_release //???
QT += gui //加入gui庫
QT += core //加入QT的核心庫
QT += xml //加入xml庫
QT += network //加入network庫
QT += sql //加入sql庫
INCLUDEPATH += ./include //頭文件包含路徑
INCLUDEPATH += ../svglib/include
INCLUDEPATH += ../../include/algebra
INCLUDEPATH += ../../include/nas
INCLUDEPATH += ../../include/planning
INCLUDEPATH += ../../include/vstability
INCLUDEPATH += ../../src_qt/cimxml/include
win32{ //win32平臺相關
CONFIG(debug, debug|release) : LIBS += -L../../../lib -lsvglibd -lalgebrad -lnasd -lplanningd -lvstabilityd -lsvglibd -lcimxmld
CONFIG(release, debug|release) : LIBS += -L../../../lib -lsvglib -lalgebra -lnas -lplanning -lvstability -lsvglib -lcimxml
DESTDIR = ../../../bin
} else {
LIBS += -L../../../release/lib -lsvglib -lsvglib -lalgebra -lnas -lplanning -lvstability -lsvglib -lcimxml
DESTDIR = ../../../release/bin
}
OBJECTS_DIR = ../../../TEMP/pm //指定目標文件(.obj)的存放目錄
MOC_DIR = moc //指定moc命令將含Q_OBJECT的頭文件轉換成呢個標準.h文件的存放目錄
UI_DIR = ui //指定uic命令將.ui文件轉化成ui_*.h文件存放目錄
RCC_DIR = rcc //指定rcc命令將.qrc文件轉換成qrc_*.h文件的
#Header files
HEADERS += include/pm_managedialog.h //指定頭文件
HEADERS += include/pm_table_base.h
#Source files //指定源文件
SOURCES += main.cpp
SOURCES += source/pm_managedialog.cpp
SOURCES += source/pm_table_base.cpp
#Forms //工程中包含的.ui設計文件
FORMS += ui/pm_managedialog.ui
FORMS += ui/pm_busbarsectiondialog.ui
#Resource file(s) //工程中包含的資源文件
RESOURCES += pm.qrc
win32:RC_FILE = pm.rc
工程項目中如果頭文件或者實現文件或者UI文件有變化,應修改對應的 HEADER、SOURCES、FORMS部分。
要從pro文件生成VC工程文件,需在d:\cimpower\src\src_qt4目錄下執行如下命令:qmake -t vcapp -o ./pm/pm.vcproj ./pm/pm.pro
可以調用vcprojeditor對VC工程文件進行處理,運行vcprojeditor程序修改VC工程文件,程序配置如下:

點擊“批量修改”按鈕,完成后退出即可。

