4

我已经能够在 Xcode 4 上成功存档,但突然间(??),我不能。构建失败并出现无效的 .pch 文件。错误粘贴在下面(通过重新尝试获得-Winvalid-pch,但从构建日志中似乎发生的情况是预编译的标头实际上没有被预编译——它是一个 iOS 应用程序,直接从 CopyPNG 步骤到 .米编译。

我会不会不小心翻转了一些东西?在我的 .pbxproj 文件的差异中似乎没有什么奇怪的。

cc1obj: warning: /Users/myname/Library/Developer/Xcode/DerivedData/Foo-afikuaovoaeqhreaaaakpafseuuv/Build/PrecompiledHeaders/Foo_Prefix-guqixmujoiaaaacwjctfkrztxmbz/Foo_Prefix.pch.gch: created by a different GCC executable
cc1obj: error: /Users/myname/Library/Developer/Xcode/DerivedData/Foo-afikuaovoaeqhreaaaakpafseuuv/Build/PrecompiledHeaders/Foo_Prefix-guqixmujoiaaaacwjctfkrztxmbz/Foo_Prefix.pch: No such file or directory
cc1obj: error: one or more PCH files were found, but they were invalid

对于所有配置,“Precompile Prefix Header”构建设置为“Yes”。产品->清洁没有帮助。删除派生数据下缓存的 pch 内容并不能修复它。真的似乎缺少整个“预编译”步骤。

另一个事实:启用设置“增加预编译头文件的共享”确实让它成功。但是我几乎找不到关于这个标志的真正作用的参考,而且我以前从未使用过它。也许合理的是,当这种情况发生时,预编译步骤仍然没有出现。

4

2 回答 2

5

你有没有清理然后重建?产品菜单 ==>清洁。清理通常会解决此类问题,有效地指示 Xcode 编译所有内容,无论它是否认为该文件的先前构建仍然有效。

如果失败,请尝试清除项目的 Derived Data 文件夹,~/Library/Developer/Xcode/DerivedData/YourProjectNamexxx其中xxx有一个 uuid 样式的字符串。

于 2011-05-06T02:47:46.917 回答
0

批准的答案是正确的,请注意它仅在某些情况下有效。

我刚刚将一个项目转换为工作区Derived Data Location从默认更改为Workspace-relative. 预编译的头文件立即停止工作,清理旧位置似乎没有任何区别。当然,因为它是旧位置!

工作区相对位置似乎位于保存工作区文件 (myProject.xcworkspace) 的文件夹内。现在有新的子文件夹 DerivedData,其中包含由工作区命名的文件夹,其中包含熟悉的内容。

索引文件夹包含 PrecompiledHeaders,其中包含(最终)几个子文件夹。删除所有这些并重新编译强制预编译发生。

于 2013-01-22T13:25:01.193 回答