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

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

PCH 文件由不同的分支((clang-425.0.27))构建,而不是编译器((clang-425.0.28))

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

16436 次浏览

Do a Clean of the project; hold Option so that you are cleaning out the whole build folder and intermediates. You might have to quit Xcode and throw away the whole contents of the DerivedData folder by hand in the Finder, as I describe here: How to Empty Caches and Clean All Targets Xcode 4

Go to your project's Build Settings, find a setting named Precompiled Headers Cache Path, then delete that folder

Do a cleanup using command+shift+k and run existing project again.

enter image description here

From XCode 4.6.2 Release Notes

Known Issues

Building

When building a product previously built with Xcode 4.6.1 or earlier, the build fails with an error similar to this one:

PCH file built from a different branch ((clang-425.0.27)) than the compiler ((clang-425.0.28))

To address this issue, choose Product > Clean before building your product. 13663167

Performing Product > Clean works

I had to manually delete ~/Library/Developer/Xcode/DerivedData/ Clean didn't work for me.

I've tried all the above and it works fine from Xcode UI, but it was still failing for me when I ran xcodebuild from command line.

That was due to dependencies to other libraries and their pre-compile headers. When running from command line, looks like xcodebuild store/reads pre-compiled headers from here:

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

After cleaning up that folder, xcodebuild succeeded.

Specially if you build from command line or you have a build script, cleaning xcode target is not enough. You have to delete this folder.

The exact location of precompiled header can be found in the project, part of the folder path is random (I guess), esp after /var/folders/xx..xxx/C.

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

Run Terminal and go to this folder and delete (use command),

#rm -fr SharedPrecompiledHeaders

enter image description here

use "command+shift+k" to clean your project, then you'll be fine.

Clean Your project and run

Product- > Clean Then, Run.