qt的重要文件简介pro、moc、pri、prf
一、项目文件(pro 文件)及其语法
1、项目文件(pro 文件)的作用是列举项目中的源文件,
2、pro 文件的语法形式为:“变量 操作符 值”,比如 QT += widgets,多个值之间使用空格分
开。
3、pro 文件的注释:从“#”开始,直至本行结束。
4、pro 文件的操作符见下表
5、pro 文件中的条件判断
win 32{QT+=widgets} # 若 win32 为真,则执行大括号中的语句
else {CONFIG = qt release} # 否则执行此处的语句,else 是可选的。
win32: QT+=widgets # 若 win32 为真则执行冒号后的语句。
greaterThan(QT_MAJOR_VERSION,4): QT+=widgets #若 Qt 版本大于 4,则执行冒号后的语句。
6、pro 文件常用的变量如下表
7、示例
由构建时生成的文件夹的名称可以判断出 Qt Creator 是以什么模式构建的项目,若名称
的最后是 Debug 则是以 debug 模式构建的,若是 Release 则是以 release 模式构建的
根据所生成的可执行文件(比如 exe 文件)的大小,可以判断出可执行文件最终是以什么
模式生成的,使用debug 模式生成的可执行文件会比release模式生成的可执行文件更大,
因为 debug 模式会包含一些调试信息。
二、moc 简介
1、moc 全称是 Meta-Object Compiler,即“元对象编译器”。
2、因为 Qt 不是使用的标准 C++ 语言,因此 Qt 在将源码交给标准 C++ 编译器(如 gcc)之
前,需要先把扩展的语法去除掉。完成这一操作的就是 moc。
3、moc 执行步骤
Qt 程序编译之前,先使用 moc 分析 C++ 源文件,若在头文件中包含了宏 Q_OBJECT,
则会生成另外一个包含了 Q_OBJECT 宏实现代码的 C++ 源文件,这个新文件的名字是
在原文件名之前加上 moc_ 构成。这个新文件同样会进入编译系统,最终被链接到二进制
代码中去,因此我们在 Qt 构建后的文件夹中,见到 moc_.o 和 moc_.cpp 的文件,就是
由 moc 生成的。注意:新文件不会“替换”掉旧的文件,而是与原文件一起编译,另外,
moc 的执行是在预处理器之前。
三、pro、pri、prf 文件简介
1、pro 文件前文已详细介绍了。
2、pri 文件:该类型文件类似于 C++中的头文件,可以在 pro 文件中使用 include 将其包含进
来,因此 pri 文件中的语法与 pro 文件是相同的。示例如下
假设 xx.pri 文件内容如下
QT+=widgets
HEADERS+=widget.h
假设 xx.pro 文件内容如下
include(xx.pri) #把 pri 文件的内容包含进来
CONFIG+=QT
3、prf 文件:该文件类似于 pri 文件,文件中的语法与 pro 文件相同,也需要被包含到 pro 文
件内,但包含的方法不是使用 include,而是用 CONFIG 变量指定或 load 函数加载,而且
prf文件还应放置在qmake能搜索到的目录中去。qmake搜索的具体目录请参阅帮助文档,
以下为 qmake 搜索的目录之一
F:\app\Qt5.10.1\5.10.1\mingw53_32\mkspecs\features
示例如下
假设 xx.prf 文件的内容如下
QT+=widgets
然后把 xx.prf 文件存储到上面所指的 features 目录下
在 pro 文件中包含 prf 文件的方法如下
== CONFIG+=xx #也可使用 load(xx)==
此时就相当于 pro 文件中有一条语句 QT+=widgets