当我在 Visual Studio 中构建 c + + 解决方案时,它会抱怨 xxxx.pch 文件丢失了。我是否缺少一个设置来获取预编译的标题?
以下是完整性的精确错误:
Error 1 fatal error C1083: Cannot open precompiled header file: 'Debug\xxxxx.pch': No such file or directory
使用预编译头是一个分两步的过程。
第一步,编译一个存根文件(在 VS200x 中通常称为 stdafx.cpp)。新版本使用 pch.cpp。).此存根文件只间接包含要预编译的头文件。通常,一个小头(通常是 stdafx.h或 pch.hpp)列出标准头,如 <iostream>和 <string>,然后将其包含在存根文件中。对此进行编译将创建。Pch 文件。
stdafx.cpp
pch.cpp
stdafx.h
pch.hpp
<iostream>
<string>
在步骤2中,实际的源代码包含步骤1中与第一个标题相同的小标题。编译器遇到这个特殊标头时,读取对应的。而不是 pch 文件。这意味着它不必每次都(重新)编译那些标准头文件。
在您的情况下,第一步似乎失败了。存根文件还在吗?在您的情况下,这可能是 xxxxx.cpp。它必须是用 /Yc:xxxxx.pch编译的文件,因为这是编译器标志,表明它是 PCH 进程的步骤1。如果 xxxxx.cpp存在,并且是这样一个存根文件,那么它可能缺少其 /Yc:编译器选项。
xxxxx.cpp
/Yc:xxxxx.pch
/Yc:
注意: IDE 的后续版本可能在相关文件的默认名称中使用“ pch”而不是“ stdafx”。在下面的说明中,可能需要用 pch 代替 stdafx。我道歉。这不是我的错。
点击 OK
如果你的头文件中没有 stdafx.h,把它放在那里。编辑 它将 # 包含所有需要预编译的头
幸运13点,交叉手指点击生成。
解决方案:
确保项目中有 xxxxx.cpp
编译带/Yc 标志的 Xxxx.cpp(创造预编译头) (右键单击 xxxxx.cpp-> properties-> Precoding Header-> 创造)
编制带有/Yu 标志的 所有其他文件(使用预编译头) (右键单击 project-> properties-> Precoding Header-> 使用)
是的,它可以消除/Yc 选项,如其他人指出,但最有可能的是,您不需要触摸它来修复它。为什么您一开始没有更改任何设置就得到了这个错误?您可能已经“清理”了项目,然后尝试编译单个 cpp 文件。在这种情况下,您会得到这个错误,因为现在缺少预编译器标头。只要构建整个项目(即使不成功) ,然后构建任何单个 cpp 文件,就不会出现这个错误。
尝试构建 > 清理解决方案,然后构建 > 构建解决方案。
如果一切正常,但出现这个错误,则需要检查 * * * . vcxproj 文件中的下一节:
<ClCompile Include="stdafx.cpp"> <PrecompiledHeader Condition=
在我的例子中,有一个不正确的配置名称: 只有第一个单词。
我知道这个话题很老了,但是我最近在 VS2015中处理这个问题,帮助是删除构建文件夹并重新构建它。这可能是由于在构建时试图关闭程序或程序中止/冻结 VS 造成的。
我在搜索 iOS PCH 文件时也遇到了同样的问题,如果你也像我一样来到这里,我找到的解决方案是清除派生数据; 关闭模拟器,进入 xCode prefs-> location-> 进入派生数据文件路径,关闭 xCode,删除派生数据文件夹中的文件,重新启动并欢呼:)
如果您在服务器构建(AppCenter)中遇到这种情况,并且您正在使用 CocoaPods,那么请确保您的 Podfile 已经签入。
AppCenter 只有在找到一个 Pofile 并且没有找到文件上的 PODS 文件夹时才运行“ pod install”命令。
我已经签入了文件夹,但是因为 git 会自动忽略。Pch 文件(检查。吉蒂诺尔证实这一点) ,我的。Pch 没有被登记入住。
我通过强制执行。Pch 文件来检查它,但是删除 PODS 文件夹也可以,因为在这种情况下 Appcenter 将运行 pod install 命令。
希望这能帮到什么人。
VS 搞砸了(我的是2019年; ()。 继续选择“不使用预编译头”,因为其他家伙指出,然后打开项目文件(vcxproj)与任何文本编辑器,并删除概述的两个条目在两个地方。好好收拾残局吧! 事实上,在下面的 vcxproj 文件中的‘ pch.h’条目,您可以在 VS properties 的接口中找到它。
我设法为自己创建了这个问题,因为我想使用来自不同目录的 pch.h 和 pch.cpp 文件。因此,我从项目中删除了这两个文件,然后将它们作为其他地方的现有文件添加进来。最大的错误就是找不到预编译头文件。
我无法从 VisualStudio2019UI 中找到修复该问题的方法。您必须编辑项目文件,并确保以下内容如下所示:
<ClCompile Include="pch.cpp"> <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader> <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader> </ClCompile>
我也遇到过同样的问题,我设法用这种方式解决了它:
错误:
fatal error C1083: Cannot open precompiled header file : "Debug\myProj.pch". No such file or directory
第一个是我出错的时候,
然后像改第二部电影一样改了它
制造(/Yx)
我的项目