【C++进阶之路第一卷】预编译头加快编译速度

一、前言

最近在写项目的时候,发现随着项目越来越大,编译需要的时间也越来越长,

然后使用了预编译头,时间减少了很多!

这个谁用谁知道,很 Nice!

1. 预编译头的原理

简单来说就是将一些你认为不经常修改的头文件用一个头文件包含在一起,然后设置编译器编译它,生成一个 .pch 二进制文件,之后若其他文件有修改,并不会重新编译这些头文件,而是去访问这个二进制文件,速度会快很多

不然随着项目变大,可能在很多 .cpp 文件都重复包含了很多相同的头文件,会浪费很多编译时间

二、使用预编译头

先介绍一个设置,打开该设置可以查看 Build 时间

菜单栏 Tools / Options

这里以我最近正在写的一个项目为例,这是我的预编译头文件

我这里使用的是 VS2019,默认是 stdafx.h,我这里更改为 Core.h,大家可以按自己喜好来

Core.h

#pragma once
#include <SDL.h>
#include <SDL_image.h>
#include <SDL_ttf.h>

#include <fstream>
#include <sstream>
#include <vector>
#include <map>
#include <stack>
#include <memory>
#include <string>
#include <cmath>

#include "Vector2.h"
#include "Vector2f.h"

Core.cpp

#include <Core.h>

1. 右键 Core.cpp 文件

选择创建预编译头文件

2. 设置整个项目使用预编译头文件

3. 在每个 cpp 文件 最顶部 包含 Core.h

注意:在每个 cpp 文件 最顶部 包含 Core.h,其他文件都按正常来
和我们平常编写代码的不同就在这里,其他都是相同的

预编译后会生成一个 .pch 文件,可以看到,这个大小就很可观了

以这个项目为例,这里虽然包含的文件还不多,但是当我使用预编译头文件的时候 节省了 4s 的编译时间,当然第一次编译还是会消耗更多的时间,不过之后就很舒服了

这样就 OK 了

3. Remark

预编译头文件中包含的一般是不怎么改变的头文件,可以参考我上边的,当然常规是这样,具体还得看情况来,没有什么是一成不变的,对吧

建议大家都要使用预编译头,真的很 Nice!

三、最后



那么本卷的内容就到这里了,下卷会继续分享 C++ 相关知识

The End.

posted @ 2022-12-19 22:32  AnnihilateSword  阅读(113)  评论(0编辑  收藏  举报