新 Xcode 项目中的 OSX 10.7 预编译错误

Posted

技术标签:

【中文标题】新 Xcode 项目中的 OSX 10.7 预编译错误【英文标题】:OSX 10.7 Precompile Errors in new Xcode Projects 【发布时间】:2012-03-19 12:23:08 【问题描述】:

我正在尝试构建一个针对 10.7 Mac SDK(并使用 llvm 3.1)的新 Xcode 项目,并且在预编译阶段遇到很多解析错误。

所有 Cocoa Foundation 文件都导致解析错误,例如

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFString.h:525:174:错误:函数声明符后的预期函数体

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/System/Library/Frameworks/CoreFoundation.framework/Headers/CFError.h:68:43:错误:预期的';'在***声明者之后 CF_EXPORT const CFStringRef kCFErrorURLKey CF_AVAILABLE(10_7, 5_0); // 标识 userInfo 中关联 URL 的键。通常会提供 this 或 kCFErrorFilePathKey 之一。

如果我切换回使用 10.6,一切似乎都可以正常编译和运行。

我尝试使用以下方法删除并重新安装开发工具:

sudo /Developer/Library/uninstall-devtools -mode=all

...然后重新安装 Xcode 4.3.1,但我的任何新项目的 10.7 构建仍然失败。

有没有人在 Xcode 4.3+ 和 10.7 SDK 中看到过类似的问题。我应该尝试采取哪些其他步骤来清理/安装开发工具/Xcode?​​p>

我已将构建日志上传到http://pastebin.com/ahYzhrww。

【问题讨论】:

您的意思是在构建预编译前缀标头时遇到这些错误吗?如果是这样,那个*.pch 文件中有什么内容,您在项目中使用什么语言? (Objective-C, C, C++, Objective-C++, ...) .pch 文件包含 cocoa.h 文件的单个导入。这是 XCode 提供的基本模板。我确实创建了一个新的 Cocoa 应用程序,如果目标设置为 10.7,初始构建将失败。我已将完整的构建日志上传到 pastebin.com/ahYzhrww 您使用的是 App Store 中的 Xcode 版本吗? 是的,我使用的是从 App Store 安装的 XCode 4.3.1。 是否可以创建一个新项目,保存并上传到某个地方?另外,它是否与 LLVM GCC 一起编译? 【参考方案1】:

不久前我遇到了这个问题。这些步骤为我解决了这个问题:

从 /Applications 中删除 Xcode.app 将 /Developer 重命名为 /Devoper-old 从 Mac App Store 重新安装 Xcode。

在 XCode 中,打开 Xcode 菜单并选择 Open Developer Tools、More developer tools...

下载其余的开发者工具。

【讨论】:

以上是关于新 Xcode 项目中的 OSX 10.7 预编译错误的主要内容,如果未能解决你的问题,请参考以下文章

如何提交兼容 10.6 的 OSX 10.7 应用程序?

XCode5 说缺少 SDK 10.7,但我只指 10.8

Core Data Macos 应用程序和与 OS X 10.7 的兼容性

Xcode 5 上的目标 OS X 10.7+

在不同版本的 OSX 上调试 XCode 之外的应用程序(查看异常、日志等)

QtCreator:`clang:-stdlib=libc++ 的无效部署目标(需要 OS X 10.7 或更高版本)`