Xcode 4.1致命错误: 自从预编译头被构建后,stdlib 就被修改了

构建一个 iPhone 应用程序,使用:

  • Xcode 4.1
  • 基础 SDK iOS 4.3
  • 苹果 LLVM 编译器2.1

我已经开始得到以下错误:

致命错误: 文件 “/Developer/Platform/iPhoneOS.Platform/Developer/usr/bin/. ./lib/clang/2.1/include/stdint.h” 自预编译头建成以来已经进行了修改

我试过重新安装 Xcode 和 OS X-运气不好。是什么导致了这种情况?

28858 次浏览

首先通过 Product-> Clean 菜单尝试一个干净的构建(从 XCode 4.6.2开始)。

如果仍然不工作,然后打开管理器(从菜单中选择窗口-> 管理器)。“组织者”打开后,从窗口顶部的工具栏中选择“项目”。左边是一个项目列表,请选择您遇到问题的项目。

详细信息面板(列表右侧)将显示项目名称、位置和状态。下面显示派生数据所在位置的行。点击删除... 按钮最右边。将出现一个对话框,单击“删除”。

您也可以手动删除派生数据:

~/Library/Developer/Xcode/DerivedData/{project name + gobly-gook}

此目录包含项目的生成产品和索引。删除它的是 好的,因为它只包含由 Xcode 生成的项。下次打开项目时,Xcode 将重新生成所有内容。

在归档时,删除衍生数据文件夹对我不起作用。

我必须查看构建设置-构建位置-预编译头缓存路径并删除该文件夹。

对我来说,这是:

/var/folders/_w/t0mj70hd1439tqgxff7_mtt00000gn/C/com.apple.Xcode.501/SharedPrecompiledHeaders

Xcodebuild 命令行工具有时会因此错误而失败。当我将一个 svn 工作区同步到早期版本时,就发生了这种情况。Xcodebuild 工具将其预编译头保存在 Ant 提到的文件夹中:

/var/folders/... scrambled eggs .../-Caches-/com.apple.Xcode.503/SharedPrecompiledHeaders/

你必须查看 build 命令本身才能看到实际的文件夹名(- include/var/...) ,但是如果你正在为不同的架构构建(arm6,arm7,模拟器,例如) ,它可能会使用几个文件夹名。所以如果你在命令行构建中遇到这个问题,只需删除/var/.../共享预编译头文件中的所有内容。

我认为我应该在 Cryptognome 的答案中添加一个单独的答案,而不是一个注释,因为当问题来自于运行 xcodebuild时,它实际上是一个不同的解决方案。与 Cryptognome 一样,我在使用命令行工具 xcodebuild时也出现了这个错误。作为手动进入 /var子文件夹的一种替代方法,我发现我可以为共享的 PCH 设置我自己的缓存,你可以通过设置环境变量 SHARED_PRECOMPS_DIR来做到这一点,如下所示

xcodebuild -target Foo -configuration Release SHARED_PRECOMPS_DIR=/tmp/foo/SharedPCH

这样,我就永远不会在自动构建中遇到错误。

注意,在上面的命令中,我通常还会将 OBJROOTSYMROOT env var 设置为也在/tmp 中构建。最后,我会收拾残局。

通过简单地选择 Product > Clean,然后从 Xcode 菜单栏中选择 Product > Build,我能够以一种更简单的方式修复它。

通过 iOS 模拟器删除模拟器的内容 > 重置内容和设置... 然后点击休息。这将删除标头和资源的任何现有预编译实例。这招对我很管用

我能够通过简单的清理(command + shift + K)和重新构建来消除这个错误。

解决方案:

1)产品-> 清洁

2)产品-> 建造

错误类型:

一种构建错误

其中一个原因是:

可能已经更改了框架文件。 当对另一个框架所依赖的框架进行更改时,有时会发生这种情况。预编译头缓存不同步,Xcode 无法编译给定的项目。

其中一种情况是:

人们可能已经选择了跳转到定义,并在选择框架控件后做了一些更改。

我尝试了以上所有,但没有用。最后我删除了 Xcode,重新安装。现在工作正常..。

Xcode-> delete-> install again

也许对某些人有帮助。

我在运行 Cordova 时出现了这个错误: cordova run ios

fatal error: file '/Users/.../cordova/platforms/ios/CordovaLib/CordovaLib_Prefix.pch' has been modified since the precompiled header
'/var/folders/gb/3cf6hy4x7z3d7hprls6xmd0m0000gr/C/com.apple.DeveloperTools/6.0-6A313/Xcode/SharedPrecompiledHeaders/CordovaLib_Prefix-bfgesbulnxtdepfwgniffeysypgv/CordovaLib_Prefix.pch.pch' was built
note: please rebuild precompiled header
'/var/folders/gb/3cf6hy4x7z3d7hprls6xmd0m0000gr/C/com.apple.DeveloperTools/6.0-6A313/Xcode/SharedPrecompiledHeaders/CordovaLib_Prefix-bfgesbulnxtdepfwgniffeysypgv/CordovaLib_Prefix.pch.pch'
1 error generated.


** BUILD FAILED **


The following build commands failed:
CompileC build/CordovaLib.build/Debug-iphoneos/CordovaLib.build/Objects-normal/armv7/NSDictionary+Extensions.o Classes/NSDictionary+Extensions.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler
CompileC build/CordovaLib.build/Debug-iphoneos/CordovaLib.build/Objects-normal/armv7/CDVInvokedUrlCommand.o Classes/CDVInvokedUrlCommand.m normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler

我尝试了干净和构建,但没有工作,最后我删除文件夹’/var/文件夹/gb/3cf6hy4x7z3d7hprls6xmd0m0000gr/C/com.apple. DeveloperTools/6.0-6A313/Xcode’和工作! 这个小贴士,可以帮助别人

Clean的方法对我来说不起作用,最终我通过重新安装 XCode 解决了这个问题。