【发布时间】:2021-03-15 16:55:01
【问题描述】:
我知道这已被问过一百次,但我似乎无法让我的项目正常工作。 我有两个项目,都是静态库(.lib)。一个项目是我的核心引擎项目,它有一个预编译的头文件,我的另一个项目是一个输入管理器项目,它使用我的核心引擎,所以我最初的问题是,如果我不使用预编译头文件设置我的输入管理器项目,所有核心引擎文件包含缺少包含的编译器错误。 所以我一直在尝试设置我的输入管理器以使用来自核心引擎项目的预编译头文件,我将介绍如何设置它。
我的核心引擎项目是按照您通常设置预编译头文件的方式设置的,并且一切正常。 关于核心引擎项目本身
我的 PrecompiledHeader.cpp 文件使用这些设置。
另一方面,我认为我的输入管理器给我带来了麻烦,我尝试了一大堆不同的设置,但我没有得到任何结果。这就是我的输入管理器项目的设置方式。
所以它指向核心引擎的 .pch 文件。 使用我在网上找到的一些答案,我还复制了 Core Engine 的 .pdb 和 .idb 文件,如下所示。
这有效,这两个 .pdb 和 .idb 文件正在被复制。 我还将 Core Engine 的文件夹添加到 Additional Include Directories 中,根据我在网上阅读的所有内容,我认为这就是我应该做的所有事情,但仍然无法让它工作。
我的输入管理器项目现在只有两个文件,InputManager.h 和 InputManager.cpp,我尝试在 InputManager.cpp 的顶部包含和不包含 PrecompiledHeader.h。无论我尝试什么,我都会从 Input Manager 项目中得到这个错误。
unexpected end of file while looking for precompiled header. Did you forget to add '#include "PrecompiledHeader.h"' to your source?
如果有人对如何进行这项工作甚至更好的解决方案有任何见解,我会全力以赴。
谢谢!
【问题讨论】:
-
我认为您应该为每个项目使用不同的预编译头文件。还有你是怎么加入的?
-
从我在线阅读的内容来看,跨项目共享预编译头文件是可行的,只是看起来很棘手。我也尝试将 PrecompiledHeader.cpp 和 PrecompiledHeader.h 添加到我的 Input Manager 项目中,并让它成为我的 Input Manager 项目自己的 .pch 但也没有运气。当我说我在 InputManager.cpp 的顶部包含 PrecompiledHeader.h 时,我只是在顶部添加了 #include "PrecompiledHeader.h"
标签: c++ visual-studio precompiled-headers