【发布时间】:2023-03-28 06:53:01
【问题描述】:
我下载了CHDataStructures源码(r709),尝试在xCode 4下编译iOS静态库,编译时报错:
谁能告诉我如何编译它?
【问题讨论】:
标签: xcode ios compilation chdatastructures
我下载了CHDataStructures源码(r709),尝试在xCode 4下编译iOS静态库,编译时报错:
谁能告诉我如何编译它?
【问题讨论】:
标签: xcode ios compilation chdatastructures
作为框架的作者,当 Dave DeLong 以我的方式传递此链接时,我很感兴趣。
事实证明,这不是由于 Xcode 4,而是由于 iOS 4.3 SDK(顺便提一下,10.7 SDK)的变化。我将OBJC_EXPORT 宏与__attribute__((visibility("hidden"))) 一起使用(为此我定义了一个名为HIDDEN 的宏)。这不是问题,直到 4.3/10.7 更改了 /usr/include/objc/objc-api.h 中 OBJC_EXPORT 宏的定义...
之前定义为OBJC_EXTERN,现在定义为OBJC_EXTERN OBJC_VISIBLE,解析为OBJC_EXTERN __attribute__((visibility("default")))。因此,我使用HIDDEN OBJC_EXPORT 的声明突然开始解析为:
__attribute__((visibility("hidden"))) OBJC_EXTERN __attribute__((visibility("default")))
基本上,相反的可见性属性是错误的原因。 (准备好,战斗!)
我刚刚测试并提交了一个将HIDDEN OBJC_EXPORT 替换为HIDDEN 的修复程序。显然,这些符号无论如何都不需要声明为 extern,因为它可以在没有这些宏的情况下工作。
所以,对您的问题的简短回答是:更新到修订版 710。;-)
【讨论】: