gpt4 book ai didi

c++ - 自定义预编译头导致编译错误

转载 作者:行者123 更新时间:2023-11-30 16:10:09 27 4
gpt4 key购买 nike

由于我的项目现在的编译时间很长,我正在尝试将预编译头引入到我的项目中。我有一个包含主函数的主项目,所有实际代码都在 DLL 项目中(它们链接在一起)。我将预编译头命名为“vpch.h”,并创建了一个包含 vpch.h 的 vpch.cpp。我使用的是 Visual Studio 2017,因此我进入 vpch.cpp 的属性并选择“创建”。然后我将 vpch.h 添加为所有 cpp 文件中的第一件事。所有文件都设置为使用预编译头并引用 vpch.h 每个 CPP 文件都会引发错误:

Error C1010 unexpected end of file while looking for precompiled header. 
Did you forget to add '#include "vpch.h"' to your source?

我不知道该怎么办,因为我已经遵循了很多教程,但找不到原因。谷歌上出现的大多数问题都是人们不小心包含了预编译头。

我唯一的想法是,也许在属性中要求预编译头名称的部分中,我需要做的不仅仅是放置“vpch.h”以及确切的文件位置?对此的任何帮助都非常感谢。

编辑

从进一步调试来看,除了一个 cpp 文件之外,所有 cpp 文件都抛出错误。不会引发错误的文件是与 vpch.h 位于同一文件夹中的文件。所以文件不能只写#include "vpch.h"并且必须写类似 "../vpch.h" 的内容我可以写#include <vpch.h>我现在打算尝试一下,但我不确定这会有帮助。

最佳答案

问题在于每个 CPP 文件与预编译头不在同一文件夹中。因此,如果您使用在不同文件夹中包含不同类的文件结构,则使用 #include "../../vpch.h"实际上会失败。您必须将根文件夹添加到其他包含目录中,然后使用 #include <vpch.h>对于所有文件。我无法告诉你为什么使用 #include "../../vpch.h"没工作。在我看来,它的失败似乎违反直觉。

这可能是因为它在与您引用它的文件相同的文件夹中搜索预编译头。但是,这个答案将作为解决方案。

关于c++ - 自定义预编译头导致编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58961109/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com