1、TEMPLATE
模板设置
模板变量告诉qmake为这个应用程序生成哪种makefile。格式:
TEMPLATE = modle_type
模块类型 modle_type 包括:
app
建立一个应用程序的makefile,默认,若模板没有被指定,这个
将被使用
当使用这个模板时,下面这些qmake系统变量是被承认的。你应该
在你的.pro文件中使用它们来为你的应用程序指定特定信息。
subdirs 是一个特殊的模板,它可以创建一个能够进入特定目录并且为
一个项目文件生成makefile并且为它调用make的makefile
当设置成用于子文件夹编译时,其命令配置如下:
TEMPLATE = subdirs;
SUBDIRS = src1\src2;
lib
建立一个成库的makefile
vcapp 建立一个应用程序的Visual Studio项目文件。
vclib 建立一个库的Visual Studio项目文件。
2、SOURCES
指定源文件
告诉编译器,应用程序中的所有源文件(路径及其文件名)的列表。格式:
SOURCES = *.cpp
1) 对于多源文件,可用空格分开,如:
SOURCES = 1.cpp 2.cpp3.cpp
2) 或者每一个文件可以被列在一个分开的行里面,通过反斜线另起一行,就像
这样:
SOURCES = hello.cpp \
main.cpp
3) 一个更冗长的方法是单独地列出每一个文件,就像这样:
SOURCES += hello.cpp
SOURCES += main.cpp
这种方法中使用“+=”比“=”更安全,因为它只是向已有的列表中添加新的文件,
而不是替换整个列表。
3、HEADERS
指定工程文件包含的头文件
应用程序中的所有头文件的列表。格式
HEADERS = hello.h
HEADERS += hello.h
HEADERS += inlcude/painter.h
或者
注:列出源文件的任何一个方法对头文件也都适用。
INCLUDEPATH 头文件包含的路径(应用程序所需的额外的包含路径的列表)
如:INCLUDEPATH += .
DEPENDPATH 编译应用程序时所依赖的搜索路径(相关目录)
如:DEPENDPATH += ./INC;
4、CONFIG 变量 告诉qmake关于应用程序的配置信息
配置变量指定了编译器所要使用的选项和所需要被连接的库。配置变量中可以
添加或减少任何东西,但只有下面这些选项可以被qmake识别。
CONFIG用来告诉qmake关于应用程序的配置信息(编译选项)。
CONFIG += qt warn_on release
CONFIG -= debug_and_release
debug和release文件夹
// 除去debug_and_release模块,不会生成
在这里使用“+=”,是因为我们添加我们的配置选项到任何一个已经存在中。这
样做比使用“=”那样替换已经指定的所有选项是更安全的。
配置变量指定了编译器所要使用的选项和所需要被连接的库。配置变量中可以
添加任何东西,但只有下面这些选项可以被qmake识别。
1) 这些选项定义了所要连编的库/应用程序的类型:
qt
部分告诉qmake这个应用程序是使用Qt来连编的。这也就是说
qmake在连接和为编译添加所需的包含路径的时候会考虑到Qt库的。
应用程序是一个Qt应用程序,并且Qt库将会被连接。
thread 应用程序是一个多线程应用程序。
x11
应用程序是一个X11应用程序或库。
windows 只用于“app”模板:应用程序是一个Windows下的窗口应用程序。
console 只用于“app”模板:应用程序是一个Windows下的控制台应用程
序。
dll
只用于“lib”模板:库是一个共享库(dll)。
staticlib 只用于“lib”模板:库是一个静态库。
plugin 只用于“lib”模板:库是一个插件,这将会使dll选项生效。
2) 这些选项控制着使用哪些编译器标志:
warn_on 告诉qmake要把编译器设置为输出警告信息。编译器会输出尽可
能多的警告信息。如果“warn_off”被指定,它将被忽略。
warn_off 编译器会输出尽可能少的警告信息。
release 告诉qmake应用程序必须被连编为一个发布的应用程序(把
project 以 release 模式连编)。
在开发过程中,程序员也可以使用debug来替换release。
若同时指定了debug,则忽略这个配置
debug 表示建立的目标代码是调试(debug模式)版本,如果没有则为
release 版本。
3) 预编译加速编译
QT也可以像VS那样使用预编译头文件来加速编译器的编译速度。首先在.pro文
件中加入:
CONFIG += precompiled_header
然后定义需要预编译的头文件:
PRECOMPILED_HEADER = pch.h
// pch.h头文件即为自定义的预编译头
文件
例如,如果你的应用程序使用Qt库,并且你想把它连编为一个可调试的多线程
的应用程序,你的项目文件应该会有下面这行:
CONFIG += qt thread debug
注意,你必须使用“+=”,不要使用“=”,否则qmake就不能正确使用连编Qt的设
置了,比如没法获得所编译的Qt库的类型了。
5、程序目标放置位置
TARGET
指定目标文件名(生成的应用程序名)
描述了目标文件的名称,也就是应用程序的名字(或者说可执行、动态/静态库文
件的名称)
TARGET = filename
如果不设置该项目,目标名会被自动设置为跟pro项目文件一样的名称(如果需要
扩展名,会被自动加上)
DESTDIR
指定目标文件放置的路径
生成的应用程序放置的目录
DESTDIR += ../bin
如:
win32 {
DESTDIR = $$(RUNHOME)/bin
}
则相当于在vc6中的如下设置:
6、INTERFACES
添加界面文件(ui)
INTERFACES = filename.ui
FORMS
工程文件中包含的所有.ui文件(由Qt设计器生成)的列表。
如:FORMS += forms/painter.ui;
LEXSOURCES
应用程序中的所有lex源文件的列表。
YACCSOURCES
应用程序中的所有yacc源文件的列表。
DEFINES
VPATH
应用程序所需的额外的预处理程序定义的列表。
寻找补充文件的搜索路径。
7、只有Windows需要的系统变量
DEF_FILE
应用程序所要连接的.def文件。
RC_FILE
RES_FILE
应用程序的资源文件。
应用程序所要连接的资源文件。
8、指定相关目录
QT默认情况下把所有的编译中间文件都生成到debug和release文件夹里。
可以设定如下变量,则编译时生成的临时文件就会按不同类型分类放到项目下
的tmp文件夹中了。
UI_DIR 指定uic命令将ui文件直接转换成ui_*.h文件存放目录。
如:
UI_DIR += forms;
RCC_DIR
指定rcc命令将.qrc文件转换成qrc_*.h文件存放目录。
如:RCC_DIR += ../tmp;
MOC_DIR
指定moc命令将含Q_OBJECT的头文件转换成标准的.h文件的
存放目录。如:MOC_DIR += ../tmp;
OBJECTS_DIR
目标文件存放目录。
如:
OBJECTS += ../tmp;
9、CODECFORSRC:源文件的编码方式
如:CODECFORSRC = GBK;
10、RESOURCES:工程文件中包含的资源文件
如:RESOURCES += qrc/painter.qrc;