天天看點

QT的項目管理檔案pro的編寫

在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 \

main.cpp

一個更冗長的方法是單獨地列出每一個檔案,就像這樣

SOURCES += hello.cpp

SOURCES += main.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{…}

unix{…}

平台相關性處理

win32 {

SOURCES += hello_win.cpp

}

LANGUAGE

程式設計語言

LANGUAGE = C++

exists

!exists

!exists:如果一個檔案不存在,停止qmake

!exists( main.cpp ) {

  error( "No main.cpp file found")

LIBS

LIBS += -L folderPath //引入的lib檔案的路徑-L:引入路徑

LIBS += -lLibName //引入lib 檔案-l : 引入庫

LIBS += -L"$(OutDir)" \

-L"$(SolutionDir)lib" \

-lopengl32 \

-lglu32 \

-lObjectDbAPI \

-lGraphicsLibD

如下為一個典型的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 += 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工程檔案,程式配置如下:

QT的項目管理檔案pro的編寫

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