如何修复构建时缺少的.pch文件?

| 当我在Visual Studio中构建c ++解决方案时,它抱怨缺少xxxxx.pch文件。我是否缺少设置以恢复预编译的标头? 这是完整性的确切错误:
Error   1   fatal error C1083: Cannot open precompiled header file: \'Debug\\xxxxx.pch\': No such file or directory
    
已邀请:
注意:IDE的更高版本可能在相关文件的默认名称中使用\“ pch \”而不是\“ stdafx \”。在以下说明中,可能有必要用pch代替stdafx。我道歉。这不是我的错。 在解决方案资源管理器中右键单击您的项目。 点击下拉菜单底部的属性。 在“属性页”的左上方, 从下拉菜单中选择所有配置。 打开C / C ++树并选择Precompiled Headers 预编译标题:选择使用(/ Yu) 填写“预编译头文件”字段。标准是stdafx.h 单击确定 如果您的头文件中没有stdafx.h,则将其放在此处。编辑 它包含您要预编译的所有头文件。 将名为stdafx.cpp的文件放入您的项目。将#include \“ stdafx.h \” 在它的顶部,仅此而已。 在解决方案资源管理器中右键单击stdafx.cpp。选择属性 和所有配置再次如步骤4所示... ...但是这次选择“预编译头创建(/ Yc)”。这只会 绑定到一个文件stdafx.cpp。 将#include \“ stdafx.h \”放在所有源文件的最顶部。 幸运13.双手合十并点击“构建”。     
预编译头(pch)的使用分为两个步骤。 在第一步中,您将编译一个存根文件(在VS200x中通常称为
stdafx.cpp
)。此存根文件仅间接包含您要预编译的头。通常,一个小标头(通常为“2ѭ”)列出了诸如“3ѭ”和“4ѭ”之类的标准标头,然后将其包含在存根文件中。编译此文件即可创建.pch文件。 在第2步中,您的实际源代码包含与第一个标头相同的第1步中的小标头。编译器遇到此特殊头时,将改为读取相应的.pch文件。这意味着它不必每次都(重新)编译那些标准头文件。 在您的情况下,似乎第1步失败。存根文件是否仍然存在?在您的情况下,大概是5英镑。该文件必须是使用
/Yc:xxxxx.pch
编译的文件,因为这是表示PCH流程第1步的编译器标志。如果存在
xxxxx.cpp
,并且它是一个存根文件,则可能缺少its8ѭ编译器选项。     
固定: 确保您的项目中有xxxxx.cpp 使用/ Yc标志编译xxxxx.cpp(创建预编译头)   (右键单击xxxxx.cpp->属性->预编译头->创建) 使用/ Yu标志编译所有其他文件(使用预编译头)   (右键单击项目->属性->预编译标题->使用)     
右键单击该项目,然后选择属性菜单项 goto C / C ++->预编译头 选择不使用预编译头     
是的,可以使用/ Yc选项将其消除,就像其他人指出的那样,但很可能您无需触摸即可对其进行修复。为什么在不更改任何设置的情况下首先出现此错误?您可能已经“清理”了该项目,然后尝试编译一个cpp文件。在这种情况下,您会收到此错误,因为现在缺少预编译器头。只需构建整个项目(即使不成功),然后构建任何单个cpp文件,也不会收到此错误。     
如果在服务器内部版本(AppCenter)上发生这种情况,并且您使用CocoaPods确保您的Podfile已签入。 如果AppCenter找到Pofile,但没有在文件上找到PODS文件夹,则它仅运行\“ pod install \”命令。 我已经签入了文件夹,但是由于git自动忽略.pch文件(请检查.gitignore以非常方便地执行此操作),因此我的.pch没有被签入。 我通过强制.pch文件进行检查来对问题进行排序,但是删除PODS文件夹也应该起作用,因为在这种情况下Appcenter将运行pod install命令。 希望这对某人有帮助。     
如果一切正确,但是存在此错误,则需要检查****。vcxproj文件中的下一部分:
<ClCompile Include=\"stdafx.cpp\">
  <PrecompiledHeader Condition=
就我而言,配置名称不正确:只有第一个单词。     
我知道这个主题很老,但是最近我在VS2015中处理了这个问题,而有用的是删除了构建文件夹并重新构建。这可能是由于尝试在构建时关闭程序或暂停/冻结VS而发生的。     
我正在搜索有同样问题的iOS PCH文件,如果您也像我一样来到这里,我发现的解决方案是清除派生数据。关闭模拟器,转到xCode首选项->位置->转到派生数据文件路径,关闭xCode,删除派生数据文件夹中的文件,重新启动并欢呼:)     
尝试构建>清洁解决方案,然后尝试构建>生成解决方案。这对我有用。     

要回复问题请先登录注册