vs2019怎么样建立头文件_VS2019自定义预编译头文件

本文介绍了如何通过预编译头文件来减少C++项目的编译时间。首先创建一个mypch.h文件,包含所有不变动的头文件,如标准库和STL。接着在mypch.cpp中包含mypch.h,并设置编译属性,使mypch.cpp创建预编译头。在项目中每个cpp文件引用mypch.h。当预编译头文件不变时,编译速度显著提升,尤其对于头文件较多的项目。但应注意,预编译头文件的改动会导致所有文件重新编译,所以只应包含不常修改的头文件。

每次编译项目时,编译器会把所有相关的文件复制进项目中并进行编译,但其实,这些被编译的文件中总有一些文件是不会变动的,比如标准库、STL和一些我们自己写的但基本不会更改的头文件等等,可是这些文件却要在每次编译时都被重新包含进项目中并重新编译。可不可以让它们只被编译一次?这样就可以大大缩短编译时间了。事实上确实可以,我们可以通过预编译头文件的方式做到这点。

以VS2019为例,进行自定义预编译头只需要三步:

创建文件:将希望预编译的头文件都包含到一个头文件中,这里我们将它命名为mypch.h(pch: pre-compiled header);再新建一个cpp文件,命名为mypch.cpp,在其中包含mypch.h。

设置属性:在mypch.cpp的属性页中,找到C/C++ -> 预编译头,预编译头选择“创建(/Yc)”,预编译头文件填写我们刚刚创建的mypch.h。在项目的属性页中按照2中方法找到预编译头,预编译头选择“使用(/Yu)”,预编译头文件填写mypch.h。

在项目的每个cpp文件的最开始加上#include "mypch.h"。

这就搞定了。然后就可以多次更改、编译项目测试编译时长看看效果如何,越是头文件多的项目速度提升会越明显。

但是,把所有头文件都进行预编译并不意味着优化,相反,这可能拖慢编译速度。预编译头之所以可以大幅缩短编译时间,在于它提前将一部分头文件编译好了,因此当你按下“Ctrl+B”后需要进行的工作就少了许多。但是,如果预编译头文件中的某个文件的内容进行了更改的话(或许只是在某个头文件里加了个空行),那么预编译头文件中的所有文件都要进行重新编译。

因此,只将不常变动的头文件放进预编译头中,比如标准库、STL或其他第三方库,自己写的头文件最好不要放进去。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值