CHDataStructures.framework不能在Xcode 4中为iOS编译

我下载了CHDataStructures源代码(r709),并尝试编译xCode 4下的iOS静态库。编译时抱怨:

Xcode构建错误

任何人都可以给我一些想法如何编译它?

作为这个框架的作者,当戴夫德隆以我的方式通过这个链接的时候,我很感兴趣。

原来,这不是由于Xcode 4,这是由于在iOS 4.3 SDK(顺便说一句,也是10.7 SDK)的变化。 我正在使用__attribute__((visibility("hidden"))) (为此我定义了一个名为HIDDEN的macros)的OBJC_EXPORTmacros。 直到4.3 / 10.7改变了/usr/include/objc/objc-api.hOBJC_EXPORTmacros的定义之后, OBJC_EXPORT

以前,它被定义为OBJC_EXTERN ,但现在它被定义为OBJC_EXTERN OBJC_VISIBLE ,它parsing为OBJC_EXTERN __attribute__((visibility("default"))) 。 因此,我使用HIDDEN OBJC_EXPORT声明突然开始解决:

 __attribute__((visibility("hidden"))) OBJC_EXTERN __attribute__((visibility("default"))) 

基本上,反对的可见性属性是错误的原因。 (准备好,打!)

我刚刚testing并提交了一个用HIDDEN OBJC_EXPORTreplaceHIDDEN OBJC_EXPORT的修复程序。 显然这些符号不需要被声明为extern ,因为它没有这些macros。

所以,你的问题的简短答案是:更新到修订710. 😉