【问题标题】:Issue using a dependant static library in Xcode for iOS在 Xcode for iOS 中使用依赖静态库的问题
【发布时间】:2012-12-18 00:13:07
【问题描述】:

我正在为 iOS 开发一个应用程序。我创建了一个静态库,它自己编译没有问题。

我按照这些说明设置了我的静态库。 http://www.blog.montgomerie.net/easy-xcode-static-library-subprojects-and-submodules

我还添加了一个“复制标头”构建阶段,然后将所有标头添加为公共,因为这与上述链接中的描述不完全一致。

然后我将其推送到 Git 存储库。

按照链接文章中的所有说明进行操作后,当我尝试构建时,我收到 150 个 Apple Mach-O 链接器错误。这里是输出日志http://pastebin.com/Ma2tCK1w

只有在我开始在应用程序项目中使用静态库后才会出现错误 - 只需添加静态库不会导致任何问题。

还有其他人遇到过这种情况吗?我包含了所有正确的框架,并且所有源文件都被编译到静态库中。在这一点上我没有想法,我基本上遵循了我在任何论坛、SO等上找到的所有指南或答案。

【问题讨论】:

    标签: objective-c xcode static-libraries


    【解决方案1】:

    在那篇博文中创建的示例静态库非常基础,只需要链接到三个基本的 iOS 框架:UIKit.frameworkFoundation.frameworkCoreGraphics.framework。由于 iOS 应用程序项目模板都包含使用这 3 个框架的“将二进制文件与库链接”构建阶段步骤,因此他能够在他的 iOS 应用程序中包含静态库,而无需额外步骤。

    根据您的构建输出,您的静态库使用许多其他框架的功能,例如AddressBook.frameworkAddressBookUI.frameworkCFNetwork.frameworkCoreData.frameworkEventKit.frameworkEventKitUI.frameworkMediaPlayer.framework、@ 987654332@、OpenGLES.frameworkQuartzCore.frameworkSystemConfiguration.frameworklibxml2.dylib 和可能的其他人。您需要确保将所有这些框架/dylib 添加到您的主 iOS 应用项目中,并将它们包含在“Link Binary with Libraries”构建阶段,就像它们包含在静态库的链接构建阶段一样。

    【讨论】:

    • 非常感谢,现在非常接近工作了。我的印象是,通过链接我的静态库,它会自动链接到所有这些框架,因为它们链接在静态库中。我现在没有收到数百个错误 - 已经减少到一个,日志可以在这里找到:pastebin.com/riacVhgp我认为它与重复符号有关?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多