【问题标题】:XCode precompiling pch twice; second time with wrong languageXCode 预编译 pch 两次;第二次用错语言
【发布时间】:2010-11-04 11:25:23
【问题描述】:

我在 XCode 中有一个 Objective C 项目。在构建时,XCode 会预编译我的前缀 PCH 文件两次。第一次,它使用参数-x objective-c-header,它工作正常。第二次使用-x c-header,失败(由于文件包含Objective C代码)。

我有另一个设置相同的项目,但构建良好。 (PCH 只预编译一次,使用 Objective C。)我并排比较了两个项目的构建设置,没有任何相关的不同。我并排比较了目标的构建设置,同样没有相关差异。

我尝试清理所有目标并重建,但没有成功。我尝试重新启动 XCode,但没有运气。我为c-header grep了我的项目文件夹,但它只显示在构建日志中。

这可能是什么原因造成的?

【问题讨论】:

    标签: objective-c xcode pch


    【解决方案1】:

    PCH 文件正在多次重建,因为您的项目中有多种语言;一次使用 Objective-C 编译器,一次使用直接 C 文件,因此您在 OBJC #ifdef 之外有 Objective-C 代码,这导致直接 C 编译器占用了它的午餐时间。

    如果你有一个 C++ 文件,你最终可能会得到 3 个 PCH 编译(IIRC -- 自从我搞砸了这件事已经有一段时间了)。

    【讨论】:

      【解决方案2】:

      我讨厌回答自己的问题,但我想通了。我禁用了预编译前缀标头以查看是否可以让我继续工作。构建仍然失败并出现相同的错误,但是当包含我忘记在项目中的 .c 文件中的文件时它失败了。显然,这个 .c 文件的存在是这个项目与另一个项目的区别。现在我知道发生了什么,我将代码移到了#ifdef __OBJC__ 中,一切似乎都很好。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-12
        • 1970-01-01
        相关资源
        最近更新 更多