预编译头的概念:
所谓的预编译头就是把一个工程中的那一部分代码,预先编译好放在一个文件里(通常是以.pch为扩展名的),这个文件就称为预编译头文件这些预先编译好的代码可以是任何的 C/C++代码--------甚至是inline的函数,但是必须是稳定的,在工程开发的过程中不会被经常改变。如果这些代码被修改,则需要重新编译生成预编译头文件。
预编译头的作用:
1提高便宜速度了,有了它你没有必要每次都编译那些不需要经常改变的代码。
2编译性能当然就提高了。
预编译头的使用:
1) 添加一个stdafx.h文件(名字随便取, 这里用了VS默认提供的名称), 在这个.h文件里include要使用的头文件(一般是外部的库, 自己写的不常变的头文件也可以加进来)
2) 添加一个stdafx.cpp文件, 并include"stdafx.h"
3)项目属性-->c/c++-->Precompiled设置为UsePrecompiled Header, stdafx.h
4)stdafx.cpp属性-->c/c++->Precompiled设置为CreatePrecompiled Header, stdafx.h
done!
关于 .pch 在工程中的设定
打开Project-》Setting对话框选C++页,将Category下拉式列表框选中Precompiled Headers
第一个选项“Not using....",这样就根本不用预编译头也不去寻找pch文件,就不会出错了,但是这样做的后果是每次编译、连接都化更多的时间。
第二个选项”Automatic ...",然后在“Through header”力填上stdafx.h,这样如果没有pch文件系统会自动生成一个pch,如果有的话就使用这个pch,这个 选项是比较“
智能”的。
第三个选项是强行创建一个pch文件
第四个选项是直接使用pch文件。当然“Throughheaders”里都填stdafx.h了。