gpt4 book ai didi

c++ - Visual Studio 2015 中的预编译 header 错误

转载 作者:太空宇宙 更新时间:2023-11-04 14:33:24 25 4
gpt4 key购买 nike

如果这个问题已经得到解答,请原谅,但我一直在尝试在我的游戏引擎中实现预编译 header ,但到目前为止没有成功。

我的预编译头文件名为 UtilBase.h :

#pragma once

#if !defined(NF3D_UTIL_BASE_H)
#define NF3D_UTIL_BASE_H

// This is a precompiled header.
#pragma message("Compiling precompiled header.")

// Include engine specific files.
#include <Utilities\Platform\Types.h>

// Include external header files (STL, Win32 API, Direct3D 11, etc)

// There are some typedefs here:
typedef __int32 int32; // And so on.

#endif

虽然这不符合标准,但我还是包含了UtilBase.h在其他 header 中,因为我需要访问其某些内容。它也包含在所有 .cpp 中文件,第一行,来自当前项目(解决方案有两个项目)。

我在一些标题中需要它,因为它存储了一些 typedef在函数声明中使用的 s。例如,我有一些名为 Window.h 的文件:

#pragma once // And include guards that are omitted here
int32 NF3DCreateWindow();

关联的源文件名为 UtilBase.cpp并且只有一行代码:

#include <Utilities\UtilBase.h>

在我看来,该项目已正确设置:

enter image description here

适用于所有平台和配置。

UtilBase.cpp有这个设置: enter image description here

但是,当我编译时出现这个错误:

1>Source Files\Utilities\UtilBase.cpp(2): error C2857: '#include' statement specified with the /YcD:\New Frontiers\NewFrontiers3D\Header Files\Utilities\UtilBase.h command-line option was not found in the source file

指向UtilBase.cpp中唯一的一行(#include <Utilities\UtilBase.h>)。

为什么会发生这种情况,我该怎么做才能让它发挥作用?我很乐意发送有关此情况的任何进一步信息。非常感谢您。

最佳答案

终于成功了!对于处于我这种情况的任何人,我都这样做了:在项目设置中,Precompiled Header File 标记中,我添加了 $(ProjDir)\Header Files\Utilities\UtilBase.h 和它被评估为文件的完整路径。正确的方法是简单地添加文件:Utilities\UtilBase.h 就这样。

感谢您的支持。

关于c++ - Visual Studio 2015 中的预编译 header 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37753100/

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