我已经将iOS软件开发工具包升级到了新发布的4.1版本,现在在构建我的应用程序时遇到了以下错误:
/DeveloperBeta/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFContext.h:60:23
/DeveloperBeta/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.1.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers/CGPDFContext.h:60:23: error: expected function body after function declarator查看.h文件中的这一行,我看到了以下内容:
CG_EXTERN void CGPDFContextAddDocumentMetadata(CGContextRef context, CFDataRef metadata) CG_AVAILABLE_STARTING(__MAC_10_7, __IPHONE_4_0);真正有趣的是定义__MAC_10_7,它似乎没有在任何地方定义。在预编译我的应用程序的.pch文件时,我得到了这个错误。
令人好奇的是,编译了一个简单的hello world应用程序。
你知道我能做什么吗?
提前感谢!
Stelian
发布于 2010-09-10 02:58:53
这是一个使用LLVM模拟器构建的iOS 4.1SDK的已知错误。你可以在苹果的开发者论坛上的this thread上读到所有关于它的内容。
推荐的解决方案是在项目的构建设置中将以下内容添加到Other C Flags中:-D__IPHONE_OS_VERSION_MIN_REQUIRED=040100,其中将040100替换为您的部署目标版本(例如,对于3.0时为030000)。
发布于 2010-09-10 01:26:09
在使用LLVM编译器时,我遇到了这个问题。试着用GCC重新编译,这个问题(对我来说)就消失了。
我将继续调查,以确定这是一个通用的工具链问题,还是特定于我的配置。
--更新:
所以这看起来像是CLANG的问题。LLVM GCC 4.2运行良好。
我仍然认为这可能是我的配置有问题。对于我来说,即使是一个空项目也不能在LLVM clang1.5下编译。
--更新2:
因此,在项目信息设置中似乎没有遵守最低要求的版本设置。我已经通过以下方式手动设置:
其他C标志:-D__IPHONE_OS_VERSION_MIN_REQUIRED=031300
(显然,对于最低版本的iOS 3.1 -如果您需要更高版本,则可以使用040100版本)
这似乎只是CLANG/LLVM的模拟器问题。直接为设备编译似乎工作得很好。
发布于 2010-09-09 23:42:53
也许你应该使用最新的Xcode4构建,这是一个要求吗?MAC_10_7将在编译器附带的系统头文件中定义,我猜可能在SDK中,但我不这么认为。我猜这是你为模拟器构建的时候。
https://stackoverflow.com/questions/3677879
复制相似问题