牵着老婆满街逛

严以律己,宽以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

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 \
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 += 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文件有变化,应修改对应的 HEADERSOURCESFORMS部分。

要从pro文件生成VC工程文件,需在d:\cimpower\src\src_qt4目录下执行如下命令:qmake -t vcapp -o ./pm/pm.vcproj ./pm/pm.pro

可以调用vcprojeditorVC工程文件进行处理,运行vcprojeditor程序修改VC工程文件,程序配置如下:

 

点击“批量修改”按钮,完成后退出即可。

posted on 2015-11-24 10:59 杨粼波 阅读(907) 评论(0)  编辑 收藏 引用


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理