gpt4 book ai didi

c++ - 我什么时候想在 visual studio 中关闭 "precompiled header"?

转载 作者:太空宇宙 更新时间:2023-11-04 15:04:08 26 4
gpt4 key购买 nike

首先,我想说的是,我阅读了有关预编译 header 的内容,并且我知道这是一种优化,可以节省我在每次构建时一遍又一遍地编译 header 的时间。

我正在阅读 boost 的文档,我在他们说的说明中看到了这一点:

In Configuration Properties > C/C++ > Precompiled Headers, change Use Precompiled Header (/Yu) to Not Using Precompiled Headers

然后他们解释:

There's no problem using Boost with precompiled headers; these instructions merely avoid precompiled headers because it would require Visual Studio-specific changes to the source code used in the examples.

  1. 有人能解释一下我用粗体标记的句子吗?他们在谈论哪个 Visual Studio 的具体变化? (这是我正在阅读的文档的链接:http://www.boost.org/doc/libs/1_55_0/more/getting_started/windows.html#pch)
  2. 我为什么以及什么时候想要关闭预编译 header ?
  3. 预编译头选项中“创建”和“使用”的区别是什么。

最佳答案

最初是评论,但我也可以发布它。注意:这是特定于 VC++ 的:

  1. 粗体句是他们表示样本不遵循统一的 use-this-lead-in-header-for-pch-generation 模型的口号的方式。 IOW,他们的示例对 PCH 不友好,但如果配置正确,您仍然可以在项目中使用 pch 和 boost。

  2. 您会出于各种原因关闭它们。一些源模块,特别是来自第 3 方的源模块,不遵循在一开始就包含“the”pch-through-header 的 PCH 模型。他们的样本就是这样的代码(因此建议为他们的样本关闭它们)。有时源文件只需要对这个文件而不是项目中的所有文件进行不同的预处理器配置;为这些文件禁用 PCH 的另一个原因。

  3. 您通常使用一个 源/ header 对来生成“the One”;预编译的头图像。该头文件通常包括:

    1. 您的项目使用的任何系统标准库头文件
    2. 第 3 方 SDK header
    3. 您的 项目中未积极开发的几乎所有其他内容。

标记为创建 的单个源文件通常包含一行代码:#include "YourHeaderFile.h" , 其中YourHeaderFile.h是您用上面列表中的内容填充的标题。通过 header 将其标记为“创建”YourHeaderFile.h告诉 VC 它是编译其他源文件时通过该头重建 PCH 所需的文件。所有其他源文件都被标记为使用(PCH 关闭的那些除外)并且应该包括相同的#include "TheHeaderFile.h" 作为它们的第一 行代码。 .

简而言之(难以置信),<boost>告诉你他们的样本没有像上面描述的那样设置,因此你应该在构建它们时关闭 PCH off

关于c++ - 我什么时候想在 visual studio 中关闭 "precompiled header"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21222922/

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