如何解决PCH错误?

当我尝试在Xcode构build我的应用程序时,出现以下错误消息:

由不同分支((clang-425.0.24))编译的PCH文件比编译器((clang-425.0.27))

这不会发生,但这是更新Xcode之后的第一个版本。

其他应用程序的工作,但不是这个具体的。

如果我closures"Precompile Prefix Header"设置,它将起作用。

我如何解决这个错误,并保持这个设置?

这通常是一个caching问题。 通常可以通过按住Option键并selectProduct> Clean Build Folder …来解决

看起来, 产品>清洁生成文件夹… (与按下Option键)适用于大多数人。 请参阅@gaige所选的答案。

如果你不像大多数人(包括我自己),这仍然会给你带来麻烦XCode很可能将你的共享预编译头文件留在其他地方。 对我来说,他们是在类似的文件夹中:

 /var/folders/<some random two characters>/<some random string>/C/com.apple.Xcode.502/SharedPrecompiledHeaders 

我刚刚删除了整个SharedPrecompiledHeaders文件夹,并为我解决了这个问题。 虽然我不会去触摸这里的其他东西

吹走项目的DerivedData文件夹。 查看Xcode首选项 – >位置,看看你保存的位置。

转到Xcode首选项 – >位置(在wcochran的答案中提到),只需重命名您的DerivedData文件夹。 我只是将我的“DerivedData”更改为“DerivedData2”,并强制系统停止引用旧的位置。 这固定它,当我没有其他的答案工作。 见图:

在这里输入图像说明

从Finder项目位置删除BuildDerivedData文件夹为我工作。

没有其他的select为我工作,这是什么修复它:

我删除了/Users/(Yourname)/Library/Developer/Xcode/DerivedData/ModuleCache/的caching文件夹(重命名它也可以)。

尝试删除错误中提到的文件夹,如果你的错误看起来像这样:

PCH was compiled with module cache path '/Users/User/Library/Developer/Xcode/DerivedData/ModuleCache/75YIWZVTEAO8', but the path is currently '/Users/Stan/Library/Developer/Xcode/DerivedData/ModuleCache/75YIWZVTEAO8

升级Xcode后,我得到这个与多个项目。 清洁生成文件夹和清洁没有任何效果 – @ sedes答案和@ josema.vitaminew的评论为我做的。 但是,除非你使用一些狡猾的东西,否则它可能会很棘手,所以下面是一步一步的捷径:

  1. 去失败的生成日志
  2. 使用cmd -f“SharedPrecompiledHeaders”来find它(这将是一个巨大的可怕复杂的命令行中)
  3. 拖动select文本“SharedPrecompiledHeaders”和所有的字符之前,但不是后,直到你的path开始位(仍在大块文本的中间)例如对于我:“/ var / folders / 03 /n71d4r551jv40j5nb8r9fjy80000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders
  4. 打开Finder
  5. 菜单:转到 – >转到文件夹…
  6. 复制/粘贴选定的path
  7. 在“SharedPrecompiledHeaders”中删除所有的子文件夹(这是安全的:它只是caching的数据)

…现在你所有的项目都将是“固定的”,但是不得不第一次用零caching来重新构build自己(所以NEXT的构build将比平常慢)。

特别是如果你从命令行构build或者你有一个构build脚本,清理Xcode目标是不够的。 你有删除这个文件夹。

预编译头文件的位置可以在

 Target -> build settings => "Build locations" -> Precompiled headers cached path 

删除这个文件夹,

 #rm -fr SharedPrecompiledHeaders 

在这里输入图像说明

在我的情况下,我摆脱了SharedPrecompiledHeaders这种方式下的所有文件,一切都开始正常工作:

 sudo find /var/folders/ -type d -name "SharedPrecompiledHeaders" | xargs -n 1 -I dir sudo find dir -name \* -type f -delete 

如果没有通过清洗解决。 这是一个构buildcaching问题 – 按住Option键并导航到产品>清理生成文件夹。 这解决了我的问题。

你应该按住“shift + command + C”,然后你就会build立成功

清理和/或删除派生数据不适用于我。 什么工作是触摸/保存.pch文件(添加一个字符,然后删除它)强制它被重build。 这个伎俩。

如果做一个干净的版本不适合你,在/var/folders/../SharedPrecompiledHeaders PCH文件,并删除PCH文件,这对我工作。

您可以尝试清洁产品或生成文件夹:

SHIFT + COMMAND + K

选项 + SHIFT + COMMAND + K

我已经尝试清理项目,并清理这两个都没有工作的生成文件夹。

之后,我完全退出了xCode,删除了其标准位置的派生数据文件夹:〜/ Library / Developer / Xcode / DerivedData,再次启动xCode并构build了项目。

这似乎已经解决了我的问题。

更新

这对我来说非常合适:

  • closures你的项目或工作区。
  • 在Finder中:⇧shift+⌘cmd+ G
  • 粘贴:〜/ Library / Developer / Xcode / DerivedData /
  • 删除ModuleCache文件夹并清空垃圾箱。
  • 打开你的项目。
  • 清理:⇧shift+⌘cmd+ K
  • 生成:⌘cmd+ B

xCode 7.3.1
参考这里

在我的情况下,Xcode在我的项目主包(/ Users / Path_to_your_project_source_code / YourProjectName / DerivedData)中创build了DerivedData文件夹,

我刚刚从我的源代码包中删除了这个文件夹,现在它正在工作。

要检查转到Xcode首选项 – >位置,并查看DerivedData是否被选为“相对”。 看下面的图片 在这里输入图像说明

我试图用Swift Package Manager构build项目时遇到了这个错误。

解决办法就是删除.build目录。

对于我来说,当我将我的项目复制到另一个位置时,这总是会发生。 我会这样做,把它推到回购什么的。

我必须删除旧地址和新地址中的生成文件夹(rm -rf Build /)以使其工作。 这是有道理的,因为生成文件夹将有数据是不相关的新位置。

在这种情况下,清理派生数据或删除sharedPrecompiledHeaders文件夹并不是真的。