1

我尝试使用以下方式重用 .pch 来加快构建速度:

  1. 在 stdafx.cpp 上使用 /Yc 将 .pch 文件创建到文件夹
  2. 排除项目中的stdafx.cpp,修改链接选项

它在我的机器上成功,但在另一台机器上失败,收到错误消息:error C2011: '***' : 'struct' type redefinition

所以首先我想问一下 .pch 文件是否对机器敏感?其次,上述方法可行吗?

谢谢!

4

1 回答 1

3

预编译的头文件可以是特定于 Visual Studio 2008 SP1 的机器(来自此处):

预编译的头文件将编译的“状态”存储到某个点,并且该状态信息可以在随后的编译器调用中重用,以显着提高构建吞吐量。在过去的 15 年中,我们的编译器将预编译的头文件持久保存到磁盘,并将它们直接重新加载到虚拟内存中,具有 99.999% 的可靠性和可观的性能提升。然而,权衡是我们架构的某种程度的脆弱性。

由于 PCH 文件本身包含内部指针,因此它必须加载到创建它的虚拟内存中完全相同的地址

于 2010-04-08T06:43:40.003 回答