【补充学习】关于预编译头文件

在写代码的时候遇到了这样一个频繁的报错,由此牵出了一大块的知识,在查阅了资料和问了Deepseek后,汇总如下笔记。

简单讲解


什么是预编译头?

预编译头(PCH) 是一种优化技术,它让编译器提前编译常用的、稳定的头文件 <Windows.h>、<vector>、项目通用头文件等),并缓存编译结果。后续编译时,直接复用缓存,避免重复解析相同的头文件,从而大幅减少编译时间。

PCH 是如何生成的?

通常,项目中会有一个专门的 .cpp 文件(如 pch.cpp)负责生成 PCH。它一般只包含一行
include "pch.h" // 或 pch-il2cpp.h 并设置为 /Yc(创建预编译头)。pch.h 里面包含了所有 频繁使用、较少改动的头文件

为什么 .cpp 的第一行必须是 #include “pch.h”

当编译器启用 PCH(/Yu)时,它会强制要求每个 .cpp 文件的第一行必须是 #include “pch.h”(或指定的 PCH 文件名)。如果第一行是其他代码(如注释、空行、其他 #include),编译器会报错。


我遇到的问题

我在我的代码中只要加入#include 就会提示,PCH 警告: 找不到合适的头停止点位置。未生成 IntelliSense PCH 文件。我直接把预编译关了,问题完美解决,反正我这是小项目,也节省不了什么编译时间,我相信我的7900X(直接头疼砍头)

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇