firemail
标题:
C++中的pch文件
[打印本页]
作者:
Qter
时间:
2023-10-29 12:34
标题:
C++中的pch文件
本帖最后由 Qter 于 2023-10-29 12:39 编辑
参考链接:
https://www.youtube.com/watch?v= ... dqGD0S4FFb&index=72
PCH全称为:Pre-compiled Header,被预先编译过的头文件,对于比较大型的工程,往往编译时间会很久,通过使用PCH,把那些不经常发生改动的头文件都预先编译出来,就可以大大节省实际使用时候的编译时间。
实际应用中,还经常把外部调用的API的头文件编译为PCH,比如调用STL、调用Windows的APIwindows.h等等
使用PCH的缺点:会减弱文件间的关联性
举个例子,原本我有一个cpp,包含了#include <windows.h>,然后我把这些自己不会改的api的头文件放到PCH里,那么之后我再看这个代码,我就不知道这个cpp具体包含了哪些头文件了,我只知道它用到了PCH,但是不能一眼就看出来它包含了头文件windows.h
如何在VS2017中使用pch
举个例子,我们创建一个简单的C++工程,创建三个简单的源文件,均使用一个对应的头文件,如下图所示:
代码如下所示:
===== 头文件如下 ======
#pragma once
#include<vector>
#include<map>
#include<set>
#include<string>
#include<array>
#include<stack>
#include<windows.h>
===== Source ======
#include "Header.h"
void main()
{
}
===== Source1 ======
#include "Header.h"
===== Source2 ======
#include "Header.h"
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
通过VS2017的tool选项中的VC++ Project Settings中设置显示build项目的时长,
可以看到直接build该项目用时如下:
微信截图_20231029123837.png
(175.5 KB, 下载次数: 547)
下载附件
2023-10-29 12:39 上传
第一次build用时1902ms
接下来我们将该Header.h文件改成pch文件,为此,需要添加一个对应的cpp文件,用来进行pch处理,如下图所示:
再对该pch文件点击右键,选择属性,将其Precompiled Header属性设置为Create,如下图所示:
然后进入整个项目的属性界面,如下图设置对应参数:
然后我们再进行Build,这时的build时长如下所示,相较于之前的1903ms,减少了400多ms,而且这个差距会伴随着头文件引用次数的增多变得更大:
如果我们更改Main函数后进行Build,会发现用时大大减少,因为此时头文件已经被预先编译好了:
————————————————
版权声明:本文为CSDN博主「弹吉他的小刘鸭」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:
https://blog.csdn.net/alexhu2010q/article/details/105957780
欢迎光临 firemail (http://firemail.wang:8088/)
Powered by Discuz! X3