【问题标题】:failed to emit precompiled header未能发出预编译的标头
【发布时间】:2018-12-18 05:45:54
【问题描述】:

下午好

我正在尝试将 googles heatmaps 实施到我的基于地图的项目中。 在这个特定项目中,尝试构建时出现以下错误。

  failed to emit precompiled header '/Users/zachwilcox/Library/Developer/Xcode/DerivedData/OddJobs-gbnkfettubuccoheinzfovrqefub/Build/Intermediates.noindex/PrecompiledHeaders/OddJobs-Bridging-Header-swift_3WGH9SNI96Z2-clang_16JN3VASQHE4C.pch' for bridging header '/Users/zachwilcox/Desktop/OddJobs/OddJobs-Bridging-Header.h'

以及后续的说明

  'Google-Maps-iOS-Utils/GMUHeatmapTileLayer.h' file not found

我不确定为什么会发生这种情况,因为我创建了一个全新的项目并进行了相同的实施,并且效果很好。但是当我在现有项目上运行它时,我得到了这两个错误。

我一直在研究这个问题一段时间,但我无法弄清楚问题是什么。我将桥接头设置为 .h 文件。

我已经尝试了个人试图给出答案的大多数步骤,但由于某种原因,它不适用于我的项目。先感谢您。在阅读 google 安装指南时,它说我只需要添加一个桥接头文件,即您在下图中看到的代码。在研究它时,我发现我还需要添加一个 .m 文件,但是当我这样做时我仍然会遇到同样的错误。同样,在我的虚拟项目中,我没有 .m 文件,只有您在下面看到的所有内容,所有内容都可以编译。

【问题讨论】:

  • 当我注释掉 bridging-Header.h 它运行。所以这让我认为它不是搜索路径。
  • 在不断研究这个问题后,我终于找到了答案。我看到这个网站上发布的答案有很多不同的变体,试图解决这个问题,但我所做的是遵循这个guide。我希望如果其他人有同样的问题,这可以帮助他们。
  • 嗨,我遇到了同样的问题。尝试舔“指南”但“找不到页面”。你能帮忙再分享一下指南吗?谢谢

标签: xcode google-maps precompiled-headers bridging-header objc-bridging-header


【解决方案1】:

如果您的项目包含 pod,那么您也必须为测试项目设置 pod 配置..

在文件检查器中选择根项目 -> 项目名称 -> 信息 -> 配置 为您的测试项目设置与您的主项目相同的配置

【讨论】:

    【解决方案2】:

    您有可能为所选方案关闭了“查找隐式依赖项”。如果您已更新/安装 pod 并尝试构建项目,如果未选中所选方案的此选项,则更有可能失败。@ 987654321@

    来自 Apple 的文档:

    Parallelize Build – 此选项允许 Xcode 通过构建不依赖于彼此的目标来加快总构建时间。对于具有许多可以轻松并行运行的较小依赖项的项目,这可以节省时间。

    Find Implicit Dependencies – 这是一个非常强大的选项,它允许 Xcode 解析为成功构建方案的主要目标需要构建哪些目标。但是,这确实带有一些您必须注意的尖锐边缘。

    • 情况:您将一个库链接到您的应用程序目标,并创建对该库目标的隐式依赖。

    • 场景 1:“查找隐式依赖项”已启用。

      • 结果:库将在构建应用程序目标之前构建。然后应用程序目标将链接到库并成功构建。
    • 场景 2:“查找隐式依赖项”已禁用。

      • 结果:在构建应用程序目标之前不会构建库。应用目标构建失败。

      • 修复:为确保不会发生第二种情况,您必须将必要的目标添加到目标列表中并正确排序。

    【讨论】:

      猜你喜欢
      • 2018-02-27
      • 2018-09-17
      • 2020-03-05
      • 2018-01-28
      • 2018-07-16
      • 2018-05-27
      • 2019-02-27
      • 2018-11-21
      • 2022-12-12
      相关资源
      最近更新 更多