预编译头 - Geminiv/CgvWiki GitHub Wiki

1.概念

所谓头文件预编译,就是把一个工程(Project)中使用的一些第三方库预先编译,以后该工程编译时,不再编译这部分头文件,仅仅使用预编译的结果。这样可以加快编译速度,节省时间。

2.目的

大大加快编译速度,节省时间。

3.预编译头所包含的文件

在一个工程中,总有一些头文件,是几乎所有的.cpp都包含的。所以我们可以将这部分的文件提取出来放入预编译头中,这样就可以让这些头文件只编译一边,却能让所有其他的cpp都能使用这些头文件。

4.如何自己生成和使用预编译头

1.新建一个.h头文件和.cpp文件,名字可以自定义,以下过程是在 VS2019 环境下,使用 pch.h 和 pch.cpp
VS2017 中默认是 stdafx.h 和 stdafx.cpp,VS2019 中默认是 pch.h 和 pch.cpp

2.在pch.h文件中写入项目依赖的已经固定的代码部分,例如项目依赖的第三方库或者已经比较成熟的代码,如下所示:

#ifndef PCH_H //#ifndef 是传统的宏定义形式,在 VS2019 中默认的预编译头采用这种形式,标识这个头文件是预编译头
#define PCH_H //也可以使用 #program once 来替代 #ifndef #define #endif 的宏语句

#include<string>
#include<iostream>
#include<vector>

// 添加要在此处预编译的其他头文件

#endif

3.在新建的pch.cpp文件中包含这个头文件。

#include“pch.h”

4.通过如下步骤将 pch.h 设置为项目的预编译头。

(1)右键点击项目名称 -> 选择属性,进入项目属性页。
(2)展开C/C++条目 -> 选择预编译头,进入预编译头设置页。
(3)预编译头选项设置为 使用(/Yu)
(4)预编译头文件选项设置为 pch.h
(5)关闭项目属性页。

(6)为当前项目所有cpp文件加入**#include“pch.h”
(7)右键点击pch.cpp文件 -> 选择属性,进入文件属性页。
(8)展开C/C++条目 -> 选择预编译头,进入预编译头设置页。
(9)预编译头选项设置为 创建(/Yc)

(10)关闭文件属性页。

按照以上步骤就完成了预编译头的创建和使用。

⚠️ **GitHub.com Fallback** ⚠️