可以自己制作一个stdfx.h文件吗



现在,我意识到我的项目需要一个预编译的头。然而,在一开始,我将我的项目创建为一个空项目,该项目没有stdfx.h头文件。所以,我就是这么做的:
-我创建了一个名为stdfx.h的头文件
-在那个文件中,我包含了一些库
-我转到项目"属性页"->"C/C++"->"预编译头"->将"预编译的头"选项设置为"使用"(/Yu)
-最后,我在每个cpp文件中都包含了stdfx.h

它有效。但是,我想知道我自己创建的stdfx.h文件是否与Visual Studio自动创建的文件类似?我的意思是,它真的是一个预编译的头文件,可以在编译时节省时间,还是只是一个普通的头文件?

它通常被命名为stdafx.h,但这并不重要。您可以根据需要为预编译头命名。

你错过了最后一步。

您还需要创建一个stdafx.cpp。这是一个只有#include "stdafx.h"行的空文件。

对于此特定文件,在解决方案资源管理器中右键单击它,然后选择属性。这将打开一个"属性"页面,其中包含特定于此源文件的设置(默认情况下,中继承了您的项目设置)。对于此特定文件,选择/Yc作为编译器选项,而不是选择/Yu作为预编译设置。如果不这样做,您可能看不到预编译头文件的构建速度的提高。

当Visual Studio生成时,它将首先生成您的stdafx.cpp文件。除此之外,它还将构建其他源文件将获取的.pch文件。

当我在这里的时候。预编译头文件中要包含的内容是所有的系统和C/C++运行时头文件。(例如<windows.h>, <stdio.h>, <string>, <map>等)。通过包含所有这些文件,您将获得最大的收益,因为它们在不同的构建中永远不会改变。

您肯定可以自己或其他预编译的头文件来制作stdfx.h(名称并不重要)。但是您应该遵循MSDN中描述的一些规则。

您可以在文档中阅读更多关于预编译头的信息

相关内容

  • 没有找到相关文章

最新更新