新 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 预编译错误的主要内容,如果未能解决你的问题,请参考以下文章
Core Data Macos 应用程序和与 OS X 10.7 的兼容性
在不同版本的 OSX 上调试 XCode 之外的应用程序(查看异常、日志等)
QtCreator:`clang:-stdlib=libc++ 的无效部署目标(需要 OS X 10.7 或更高版本)`