预编译头常用的有创建/Yc和使用/Yu两个选项,先创建然后才能使用。
要使用预编译头,我们必须指定一个头文件,这个头文件包含我们不会经常改变的代码和其他的头文件,然后我们用这个头文件来生成一个预编译头文件(.pch文件),想必大家都知道 StdAfx.h这个文件。很多人都认为这是VC提供的一个“系统级别”的,编译器带的一个头文件。其实不是的,这个文件可以是任何名字的。
我们知道一个头文件是不能编译的。所以我们还需要一个cpp文件来生成.pch 文件。这个文件默认的就是StdAfx.cpp。在这个文件里只有一句代码就是:#include “Stdafx.h”。原因是理所当然的,我们仅仅是要它能够编译而已。也就是说,要的只是它的.cpp的扩展名。我们可以用/Yc编译开关来指定StdAfx.cpp来生成一个.pch文件,通过/Fp编译开关来指定生成的pch文件的名字。右键StdAfx.cpp——》属性——》C/C++——》预编译头。然后可以通过/Yu编译开关来使用预编译头,右键工程——》属性——》C/C++——》预编译头。
默认情况下:
除了stdafx.cpp文件是“创建预编译头(/Yc)”外,整个工程的属性是“使用预编译头(/Yu)”。
应该把整个工程的属性设置为“使用预编译头(/Yu)”,仅仅把stdafx.cpp文件设置为“创建预编译头(/Yc)”。