如何解决如何修复构建时缺少的.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,删除派生数据文件夹中的文件,重新启动并欢呼:)
,尝试构建>清洁解决方案,然后尝试构建>生成解决方案。这对我有用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。