QMake概述

2022-04-26  本文已影响0人  秋冬不寒

qmake将项目中的文件信息扩展为Makefile,该Makefile执行编译和链接所需的命令。

项目描述

项目由项目文件(.pro)的内容描述。qmake使用文件中的信息生成构建项目所需的命令的Makefile。项目文件通常由以下部分构成:

构建项目

对于简单的项目,只需要在项目的顶级目录中运行 qmake 即可生成 Makefile。然后,make根据 Makefile 运行平台的工具来构建项目。

使用第三方库

Qt 源代码包包括第三方库。要设置 Qt 是使用系统版本的库还是使用捆绑版本,需要在要配置的库名称之前传递-system或-qt 。

库名词 Qt捆绑库 系统库
zlib -qt-zlib -system-zlib
libjpeg -qt-libjpeg -system-libjpeg
libpng -qt-libpng -system-libpng
freetype -qt-freetype -system-freetype
PCRE -qt-pcre -system-pcre
HarfBuzz-NG -qt-harfbuzz -system-harfbuzz

预编译头文件

在大型项目中,可以利用预编译的头文件来加快构建过程。
qmake 支持在某些平台和构建环境中使用预编译头文件,包括:

将预编译的头文件添加到项目中

预编译的标头必须包含在整个项目中稳定且静态的代码。典型的预编译头文件可能如下所示:

// Add C includes here

#if defined __cplusplus
// Add C++ includes here
#include <stdlib>
#include <iostream>
#include <vector>
#include <QApplication> // Qt includes
#include <QPushButton>
#include <QLabel>
#include "thirdparty/include/libmain.h"
#include "my_stable_class.h"
...
#endif

预编译的头文件需要将 C头文件与 C++ 头文件分开,因为 C 文件的预编译头文件可能不包含 C++ 代码。*

项目选项

在项目文件中定义PRECOMPILED_HEADER变量:
PRECOMPILED_HEADER = stable.h
针对 Windows 的 MSVC 和 g++ 规范中precompile_header默认启用。

也可以设置条件来配置预编译头文件:

precompile_header:!isEmpty(PRECOMPILED_HEADER) {
DEFINES += USING_PCH
}
上一篇下一篇

猜你喜欢

热点阅读