10

当此解决方案使用 .lib 文件而不是 .dll 文件时,这可以正常工作。

我有我的所有项目,除了一个当前使用预编译头的项目,没有错误。预编译的头文件称为“ LudoGlobal.h ”。我正在尝试将最后一个项目链接到这个预编译的头文件(它存在于一个单独的“核心”项目中),但我收到以下错误:

错误 4 致命错误 C1083:无法打开预编译的头文件:'....\Output\LudoSound\Debug\LudoSound.pch':没有这样的文件或目录 ludosoundmanager.cpp 1

对于每个 .cpp 文件。为什么是这样?我该如何解决?

我意识到 LudoSound.pch 不存在。我假设它可能是在 LudoSound 编译时创建的,是吗?

4

4 回答 4

25

您是在项目上使用“自动生成”还是“使用预编译头”并在一个 cpp 文件上“创建预编译头”?后者效率更高,但我看到项目上的每个文件配置被意外重置,因此“stdafx.cpp”(或其他)文件不再生成预编译头文件。

于 2009-10-15T18:27:18.480 回答
4

从 & 到我的项目中删除并重新添加 stdafx.cpp 后,我遇到了这个问题。解决方案:

  • stdafx.cpp 需要具有 Create PrecompiledHeader (/Yc) 属性,这会将 stdafx.cpp 设置为负责从 stdafx.h 创建 .pch 的那个
  • 项目(以及其中的所有文件)可以具有属性 Use PrecompiledHeader (/Yu),它们可以使用由 stdafx.cpp 编译创建的 .pch
于 2014-04-11T10:29:18.343 回答
0

尝试在新的项目中重建您的项目,只复制所需的文件。

于 2009-10-15T18:40:38.747 回答
0

LudoSound.pch 未重新生成。仅删除它所在的文件夹并重新构建。

于 2012-12-29T18:07:45.480 回答