背景
编译器一般都是以文件为单位进行编译,如果修改了工程中的一个文件,那么将导致所有文件都要从新编译,这样的编译将耗费很长时间。
目的
为了提高编译速度,将那些不常被修改,比较稳定,文件单独包含到一个指定的头文件中, 然后生成一个预编译头文件 *.pch 。
原理
VC中默认的头文件为 stdAfx.h, 但光有头文件无法编译,所以还要用到StdAfx.cpp里只包含一句有效代码,这样编译时,通过编译 stdAfx.cpp就把大部分系统头文件编译进来,Debug目录下便会产生一个存储了预编译信息的 .pch 文件。如果.pch文件损坏或者不存在,就会出现,error C1083: 无法打开预编译头文件xxx.pch: No such file or directory。 可见,你也可以在项目属性中选择“不使用预编译头”,但是编译大项目时可能会很慢