我什么时候想在Visual Studio中关闭“预编译头文件”?

糟糕的用户

首先,我想说的是,我阅读了有关预编译头文件的信息,并且我了解这是一种优化,它节省了我在每次编译时都反复编译头文件的时间。

我正在阅读boost的文档,并且在说明中看到它们说:

在“配置属性”>“ C / C ++”>“预编译头”中,将“使用预编译头(/ Yu)”更改为“不使用预编译头”。

然后他们解释:

将Boost与预编译的标头一起使用没有问题;这些说明仅避免使用预编译的标头,因为它要求对示例中使用的源代码进行特定于Visual Studio的更改。

  1. 有人可以解释一下我用粗体标出的句子吗?他们正在谈论哪些Visual Studio特定更改?(以下是我正在阅读的文档的链接:http : //www.boost.org/doc/libs/1_55_0/more/getting_started/windows.html#pch
  2. 为什么以及何时要关闭预编译的标头?
  3. 预编译头选项中的“创建”和“使用”之间有什么区别?
WhozCraig

本来是评论,但我也可以发表。注意:这特定于VC ++:

  1. 粗体的一句话是他们说样本不遵循统一使用的方法,即这种领先的PCH生成模型的口头禅。IOW,他们的示例不是PCH友好的,但是如果配置正确,您仍然可以在项目中使用带有增强功能的pch。

  2. 您可能出于多种原因将其关闭。一些源模块,特别是来自第三方的模块,并不遵循PCH模型,即一开始就包含“ pch-through-header”。他们的样本就是这样的代码(因此建议关闭它们以获取样本)。有时,源文件仅对此文件需要不同的预处理器配置,而并非项目中的所有文件都需要。禁用这些文件的PCH的另一个原因。

  3. 通常使用一个源/报头对以产生“一”; 预编译的头文件映像。该头文件通常包括:

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

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

总之(难以置信),<boost>告诉你他们的样品不一样设置如上所述,因此你应该把PCH关闭构建它们时。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

什么时候试穿与资源关闭资源?

什么时候Java比C ++快(或者什么时候JIT比预编译快)?

我们什么时候应该关闭EntityManagerFactory?

什么时候在mongodb中关闭连接?

我什么时候可以在AlertView中编辑视图

什么时候关闭文件?

什么时候应该同步,什么时候应该在Android Studio中构建/重建项目,我可以使其自动化?

什么时候应该关闭SolrSearcher?

什么是snakemake元数据文件?我什么时候可以擦除?

我什么时候应该在StratifiedKFold中洗牌

在我的班级头文件中的预编译头中包含头,以及在其外部

我们什么时候使用自我。或[with]在stringWithFormat中?

在Visual Studio中为函数定义和头文件编译单独的.cpp文件

在什么时候关闭ResultSet

为什么不能在Visual Studio中禁用预编译头文件?

我们什么时候使用Element?我们什么时候使用Helper?我们什么时候使用View Cells?在CakePHP 3中

我的VirtualBox中的VM是什么时候创建的?

什么时候在MySQLdb中关闭游标?

sshpass什么时候关闭连接

xcode项目中预编译的头文件在什么地方?

Visual Studio 2015中的预编译头错误

我应该什么时候关闭 JSF Web 应用程序中的 HIbernate 会话工厂?

我什么时候可以在从 Java 源代码编译的 .class 文件中获得 pop2 操作码?

Visual Studios,在 C 代码中使用预编译头文件

我什么时候需要在 Scala 中向我的类添加成员定义?

Visual Studio 命令提示中缺少 C 头文件来编译 Sqlite3.c

我什么时候应该把 state 放在 parent 中?

我什么时候应该同时写 'winuser.h' 和 'windows.h' 头文件?

在 Swift 中,我什么时候会使用“while let”?