C++ 预编译头.pch文件是否对计算机敏感?

C++ 预编译头.pch文件是否对计算机敏感?,c++,build,visual-c++,precompiled-headers,C++,Build,Visual C++,Precompiled Headers,我尝试使用以下方法重用.pch以加快构建速度: 使用stdafx.cpp上的/Yc将.pch文件创建到文件夹中 在项目中排除stdafx.cpp,并修改链接选项 它在我的计算机中成功,但在另一台计算机中失败,并收到错误消息:错误C2011:“***”:“struct”类型重新定义 首先我想问一下.pch文件是否对机器敏感?其次,上述方法可行吗 谢谢 预编译头可以是特定于机器的,直到Visual Studio 2008 SP1(从): 预编译的头文件存储 汇编的“状态”达到 某一点,以及那个状态

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

  • 使用stdafx.cpp上的/Yc将.pch文件创建到文件夹中
  • 在项目中排除stdafx.cpp,并修改链接选项
  • 它在我的计算机中成功,但在另一台计算机中失败,并收到错误消息:错误C2011:“***”:“struct”类型重新定义

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


    谢谢

    预编译头可以是特定于机器的,直到Visual Studio 2008 SP1(从):

    预编译的头文件存储 汇编的“状态”达到 某一点,以及那个状态 信息可以在中重用 对的后续编译器调用 显著增加构建 吞吐量在过去15年中,我们的 编译器已持久化预编译 将标题复制到磁盘并重新加载 直接使用 99.999%的可靠性和可观的性能增益。权衡, 然而,这是一个脆弱的程度 我们的建筑

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


    您可能希望指示编译器。。。假设VisualC++,你使用的是“Visual C++”(你和其他人)的讨厌的“STDAFX”头文件,它实际上是VC++。错误代码是可识别的。