【发布时间】:2014-05-13 16:55:06
【问题描述】:
我刚刚完成了将相当数量的 c 源代码移植到 iOS 平台并将它们打包为通用静态框架。然后,我将框架(不是项目)添加到示例 iOS 应用程序中,以测试链接和正确的功能。就在那时,我遇到了一个令人尴尬的问题。
在尝试解决here 描述的问题时,我还遇到了一些通过大量使用宏组成的符号(我讨厌那些)。其中一些宏使用的函数属性实际上是 gcc 而不是标准 C 的扩展。
当然,我总是可以添加-std=gnu89,但即使这样,我也不确定它是否能解决静态库中未定义符号的原始问题。
不仅如此,我现在担心我将这些来源移植到 iOS 可能不是一个准确的移植,并可能导致可能与编译器的可待因和/或优化策略相关的错误/问题类型。
如果您能分享一些关于如何最好地进行该端口的经验/建议,我将不胜感激。
谢谢!
【问题讨论】:
-
你应该问一个更具体的问题。你得到什么样的错误?我在 clang C 程序中使用 __attribute__((__constructor__)) 并且效果很好。
-
@Richard:谢谢。这就是我要找的:((_constructor_))。至于原来的问题,这里有介绍:stackoverflow.com/questions/23623223/…
-
@Richard : 你能发表你的评论作为答案让我接受吗?
标签: ios c frameworks clang ld