Xcode版本4.6.2(4H1003)编译器错误


88

我刚刚更新到Xcode版本4.6.2(4H10003),并尝试在模拟器中运行以前运行的应用程序项目,并收到以下错误,并且构建失败。

从与编译器((clang-425.0.28))不同的分支((clang-425.0.27))构建的PCH文件

出了什么问题,如何解决?


我尝试做一个产品->清洁,然后从模拟器中删除以前构建的应用程序。两者都不起作用。
OscarTheGrouch

2
在构建设备时(多次尝试),“清理构建文件夹”没有解决我的问题。我必须“清理构建文件夹”,构建到模拟器,然后构建到已解决的设备。
DBD

Answers:


183

清理项目;hold Option,以便清除整个构建文件夹和中间版本。您可能必须退出Xcode,并在Finder中手动丢弃DerivedData文件夹的全部内容,如我在此处所述:如何清空缓存并清理所有目标Xcode 4


是的,清洁对我也有用。错误只是说预编译的头文件是用其他版本构建的,并且与最新的编译器版本不兼容。
zingle-dingle

如果以前的Xcode升级没有发生这种情况,那么您很幸运。这是发生在我身上。过了一会儿,您就会习惯了……
马特2013年

在按住“ Clean Build Folder”选项的情况下,这对我有用。谢谢!
路加福音

1
这对我有用,谢谢...我不知道持有该期权会产生另一种影响。
OscarTheGrouch

这仅适用于在Xcode中构建。如果您是从命令行构建的,请参见下面的Rodrigo Lima的文章。
杰夫

21

转到项目的Build Settings,找到名为的设置Precompiled Headers Cache Path,然后删除该文件夹


仅此操作帮助我解决了提到的问题。谢谢!
2013年


9

XCode 4.6.2发行说明

已知的问题

建造

当构建先前使用Xcode 4.6.1或更早版本构建的产品时,构建失败并显示与以下错误类似的错误:

从与编译器((clang-425.0.28))不同的分支((clang-425.0.27))构建的PCH文件

要解决此问题,请在构建产品之前选择“产品”>“清洁”。13663167

表演产品>清洁工程


1
是的,这是以前版本的问题,但只有现在才值得在发行说明中提及。而且,对于没有像Xsy一样使用Xcode的人,它们没有提供任何解决方案(@sycx这样做)(清除“预编译头缓存路径”)。
A-Live

9

我已试过上述所有的和它的作品在Xcode UI很好,但它仍然失败对我来说,当我跑xcodebuild联编命令行

那是由于对其他库及其预编译头的依赖性。从命令行运行时,看起来xcodebuild从这里存储/读取预编译的头文件:

/var/folders/v0/ztxy9kls7sv05dpmvjgg_xwr0000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders

清理完该文件夹后,xcodebuild成功。


2
此文件夹的位置对于每个人而言都将有所不同,因此找到要清理的正确文件夹的快速方法是使用find + grep ... sudo find / var / folders | grep SharedPrecompiled
Greg Combs

1
我有同样的问题。即使我可以在Xcode中进行构建,也无法从命令行运行。我结束了运行:sudo find /private/var/folders -name SharedPrecompiledHeaders然后清空了生成的目录。像魅力一样工作。
杰夫

如果可以再给我一个支持,我会的。从命令行构建时,绝对清理对我来说似乎行不通。我希望这样做,但是知道在哪里查找预编译的标头非常有帮助。
John Bowers 2013年

4

特别是如果您是从命令行进行构建的,或者您具有构建脚本,则仅清洁xcode目标是不够的。您必须删除此文件夹。

预编译头文件的确切位置可以在项目中找到,部分文件夹路径是随机的(我想),尤其是在/var/folders/xx..xxx/C之后。

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

运行终端并转到该文件夹​​并删除(使用命令),

#rm -fr SharedPrecompiledHeaders

在此处输入图片说明


好答案!但是我在那个位置没有这样的文件夹(即使在使用ls -lAhF的终端提示下)。但是,关闭Xcode,然后删除com.apple.Xcode.501文件夹就可以了。
RedYeti

预编译头文件的确切位置可以在项目中找到,部分文件夹路径是随机的(我想),尤其是在/var/folders/xx..xxx/C之后。
karim

抱歉-我不清楚。是的,路径将始终在/ var / folders / *下更改,但是该文件夹所在的文件夹没有“ SharedPrecompiledHeaders”,这让我感到惊讶。但是删除我提到的父文件夹应该可以正常工作。
RedYeti

4

我必须手动删除“ ~/Library/Developer/Xcode/DerivedData/ 清理”对我不起作用。


0

使用“ command + shift + k”清理您的项目,然后就可以了。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.