qmake:使用预编译头(实用)

预编译头 (PCH) 是一些编译器(注意并非所有编译器都支持此特性)支持的一种性能特性,用于编译稳定的代码体,并将代码的编译状态存储在二进制文件中。在后续的编译过程中,编译器会加载存储的状态,并继续编译指定的文件。每次后续编译都更快,因为不需要重新编译稳定的代码。

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

项目选项

要使项目使用预编译头文件,只需在项目文件中定义 PRECOMPILED_HEADER 变量:

 PRECOMPILED_HEADER = stable.h

qmake 将处理剩下的工作,以确保预编译头文件的创建和使用。您不需要在 HEADERS 中包含预编译头文件,因为如果配置支持预编译头,qmake 会这样做。

面向 Windows 的 MSVC 和 g++ 规范默认启用 precompile_header

使用此选项,可以在项目文件中触发条件块以在使用预编译头时添加设置:

 precompile_header:!isEmpty(PRECOMPILED_HEADER) {
 DEFINES += USING_PCH
 }

要将预编译头也用于 MSVC nmake 目标上的 C 文件,请将 precompile_header_c 添加到 CONFIG 变量。 如果头文件也用于 C++ 并且它包含 C++ 关键字/includes,请将它们用 #ifdef __cplusplus 括起来)。

关于可能出现问题的说明

在某些平台上,预编译头文件的文件名后缀与其他目标文件的文件名后缀相同。例如以下声明可能会导致生成两个具有相同名称的不同目标文件:

 PRECOMPILED_HEADER = window.h
 SOURCES            = window.cpp

为避免此类潜在冲突,请为要预编译的头文件指定不同的名称。

示例

然后在工程的其他位置就不必再包含include <QLabel>了,也不必包含stable.h文件。

下面的红色警报并不影响程序运行。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值