尽管现在机器的性能愈来愈快,但C++语言本身也变得愈来愈复杂,编译速度与同期的其它主流语言相比,总是慢上一拍。一个项目的文件经常include很多头文件,这些头文件大部分都是固定不变的,而编译每个文件时都要重新解析一番,实在是浪费资源和时间。这个时候可以使用预编译头文件来解决这个问题,加快编译速度。
预编译是指编译器首先编译某个头文件(称为预编译头文件),然后将这个编译结果保存为映象起来供以后使用,之后如果有其他源文件include了这个“预编译头文件”的时候,则自动载入已经保存的映象文件而不是重新读取解析源文件。
如果使用其它支持预编译的编译程序,也可以构造类似的文件。
4、使用预编译后映像,使用预编译结果是指编译a.cpp的时候,如果a.cpp第一行include语句是#include "stdafx.h"(或其它预编译头文件)的话,那么直接取预编译结果文件的结果,不再重新编译"stdafx.h"
使用方法
A、将相对稳定的.h文件(比如C语言库,标准模板库,第三方固定的库)全部写在预编译头文件中。
2、全部源文件第一行都加#include "preheader.h" (或其它预编译头文件名字)。如果没有概括这个头文件,则一定要在编译时注明不使用预编译头文件。
VC:使用预编译头文件
在项目属性->C++->预编译头文件->设置即可,第一次编译选择创建,然后改为使用即可,不建设使用自动创建
g++在3.4.开始支持预编译头文件,但是只作为一个 “technology preview“