TARGET = xx
TEMPLATE = app\...
这两个一般一起出现,第一个简单,表示指定生成的应用程度名;第二个有多种情况,默认是app。具体如下:
- app:建立一个应用程序的makefile,默认值,模板没有被指定,这个将被使用。
- lib:建立一个库的makefile
- vcapp:建立一个应用程序的VisuakStudio项目文件
- vclib:建立一个库的VisualStudio文件
- subdirs:这是一个特殊模板,可以创建一个能够进入特定目录并且为一个项目文件生成makefile并且为它调用make的makefile;
CONFIG += qt warn_on release 告诉qmake关于应用程序的配置信息; qt部分告诉qmake这个程序是使用Qt来连编的,也就是qmake在连接和为编译添加所需的包含路径的时候会考虑Qt库 warn_on 部分告诉qmake要把编译器设置为输出警告信息 release部分告诉qmake应用程序必须被连编为一个发布的应用程序。在开发过程中,程序员也可以使用debug来替换release.
HEADERS +=
工程中包含的头文件
FORMS +=
工程中包含的.ui设计文件
SOURCES +=
工程中包含的源文件
DEFINES + =
定义编译选项,在.h文件中就可以使用: #ifdefine xx_xx_xx
DEFINES+=QT_DEPRECATED_WARNINGS
:定义编译选项。QT_DEPRECATED_WARNINGS表示当Qt的某些功能被标记为过时的,那么编译器会发出警告。
greaterThan(QT_MAJOR_VERSION,4):QT+=widgets
:这是Qt5为了兼容Qt4而专门设计的,语句大意为如果Qt版本大于4,则将widgets模块加入到QT变量中,从这一点,我们可以推敲出Qt4的widgets模块是和gui模块为一体的,而Qt5已经将其分离了出来。
QT += coregui
需要引用工程的模块,core表示核心模块,gui表示界面模块。Qt的代码都是模块化方式组织的,如果你想引入某方面的功能,就需要将对应模块引入到你的工程中。例如我想添加数据库模块,则可以写成QT += core gui sql。
- 创建动态链接库文件时的有关pro信息
DEFINES += xx_LIBRARY
unix {
target.path = /usr/lib
INSTALLS += target
}
- 默认内容
* qnx: target.path = /tmp/\$\${TARGET}/bin
else: unix:!android: target.path = /opt/\$\${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
LIBS +=