预编译头文件(扩展名为.PCH)是把一个工程中较稳定的代码预先编译好放在一 个中间形式的文件中(PCH文件),编译器可以更加快捷的使用这个文件,减少编译时间。预先编译好的代码可以是任何的C/C++代码。
预编译头文件的目的就是提高编译速度。编译器以文件为单位编译,如果修改了一工程中的一个文件则所有文件都要重新编译,包括头文件里的所有东西。在比较大的C/C++程序中,这些头文件中所包括的东西往往很大,编译时间很长。其中一部分头文件不常被修改,为了减少因为修改A文件而去编译没有任何修改的B头文件,将B头文件加入PCH文件中,避免重复编译。
一般情况下,预编译头文件使用stdafx.h和stdafx.cpp;当然也可以用其他的文件名。具体方法如下:
1. 在项目属性中定义Create/Use Precompiled Header: Use Precompiled Header(/Yu),并指定Create/Use PCH Through File 为 stdafx.h
2. 修改stdafx.cpp的编译属性,Create/Use Precompiled Header: Create Precompiled Header (/Yc), Create/Use PCH Through File 指定为stdafx.h。
预编译头文件应当只include大的并且影响编译速度的头文件。最典型的就是windows.h,还包括STL头文件。 自己编写的的头文件一般来说不应当被include在stdafx.h中,因为变化很频繁。例外情况是,某些头文件基本稳定而且在很多文件中被include。
预编译头文件的目的就是提高编译速度。编译器以文件为单位编译,如果修改了一工程中的一个文件则所有文件都要重新编译,包括头文件里的所有东西。在比较大的C/C++程序中,这些头文件中所包括的东西往往很大,编译时间很长。其中一部分头文件不常被修改,为了减少因为修改A文件而去编译没有任何修改的B头文件,将B头文件加入PCH文件中,避免重复编译。
一般情况下,预编译头文件使用stdafx.h和stdafx.cpp;当然也可以用其他的文件名。具体方法如下:
1. 在项目属性中定义Create/Use Precompiled Header: Use Precompiled Header(/Yu),并指定Create/Use PCH Through File 为 stdafx.h
2. 修改stdafx.cpp的编译属性,Create/Use Precompiled Header: Create Precompiled Header (/Yc), Create/Use PCH Through File 指定为stdafx.h。
预编译头文件应当只include大的并且影响编译速度的头文件。最典型的就是windows.h,还包括STL头文件。 自己编写的的头文件一般来说不应当被include在stdafx.h中,因为变化很频繁。例外情况是,某些头文件基本稳定而且在很多文件中被include。
本文介绍预编译头文件(PCH)的概念及其在C/C++项目中的应用,通过合理配置减少编译时间,提高开发效率。特别是对于大型项目而言,预编译头文件能够显著缩短编译过程。
3072

被折叠的 条评论
为什么被折叠?



