gpt4 book ai didi

visual-studio-2008 - 预编译头

转载 作者:行者123 更新时间:2023-12-03 08:54:15 25 4
gpt4 key购买 nike

我有一个Visual C++ 6中的示例项目(不是我的)。我正在尝试将其转换为Visual Studio 2008。

较旧的项目正在使用预编译的头文件。现在的问题是:

  • 什么是预编译头?
  • 由于较旧的项目正在使用预编译的头文件。我还将在Visual Studio 2008(新项目)中使用它们。但是我收到错误消息,说“您忘记包括stdafx.h”了,为解决此问题,我在每个源文件中都包括了“stdafx.h”。那很好。但是,较早的项目在每个文件中都没有包含“stdafx.h”吗?然后,我如何选择在每个源文件中包括“stdafx.h”。因为并非每个源文件都需要“stdafx.h”中定义的包含文件,所以只有很少的文件需要。怎么做?

  • 编辑:我如何使用预编译头来排除某些文件?

    最佳答案

    什么是预编译头?

    通常,C++源文件包含来自外部库的头。在Windows中,您包括windows.h。这些头文件可能很大,需要一些时间来处理。每次编译C++文件时,编译器必须读取和处理这些头文件中的数千行。但是外部库不会发生变化,如果只处理这些文件一次并保存结果,则可以节省大量时间。

    预编译的头文件只是一堆头文件,这些头文件已被处理为中间形式,以后可由编译器一次又一次地使用。

    在Visual C++中预编译的头

    在Visual C++中,习惯上将所有不变的头文件#include标记为stdafx.h。然后,您指示编译器在编译stdafx.pch时创建预编译的头文件stdafx.cpp,该命令除了包含stdafx.h外什么都不做。如果要在另一个.cpp文件中使用预编译头,则必须将stdafx.h作为第一个包含文件,并指示编译器为您的预编译头使用stdafx.pch

    如果您收到关于不包括stdafx.h的错误,只需指示编译器不要对该特定源文件使用预编译头即可。 (或者您可以包括stdafx.h。)

    单个源文件的预编译头设置

    Visual C++允许您控制整个项目和单个文件的编译器设置。要访问单个属性,请在解决方案资源管理器中选择源文件,右键单击它,然后从上下文菜单中选择“属性”。预编译头文件的选项位于配置属性=> C / C++ =>预编译头文件中。如果您修改了这些设置,则通常需要对所有配置(例如,调试和发布)执行此操作。

    使用预编译头时,您将为整个项目设置一个设置,该设置指示编译器将stdafx.pch用于预编译头。 stdafx.cpp将具有指示编译器生成stdafx.pch的单独设置,如果您有一些不包含stdafx.h的源文件,则可以在这些文件上设置单独的设置以不使用预编译的头文件。

    关于visual-studio-2008 - 预编译头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1293538/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com