【问题标题】:Difference between static and dynamic library in Xcode for iPhoneXcode for iPhone 中静态库和动态库的区别
【发布时间】:2010-09-16 05:03:34
【问题描述】:

XCode 中的静态库和动态库有什么区别?为什么 Apple 不允许我们在 iOS 应用程序中使用动态库?

【问题讨论】:

    标签: iphone xcode ios static-libraries dynamic-library


    【解决方案1】:

    虽然您可以为 Mac OS X 构建动态库,但您不能将它们用于 iPhone 开发。

    静态库只是目标文件的存档,这些文件被拉入链接到它的程序中。链接器将取消归档所有存档文件,并在链接期间将它们与其余目标文件一起拉入。

    然而,动态库会创建一个共享对象文件,类似于程序但没有入口点,程序可以链接这些共享库并将其自身调用到这些共享库中以获得它们的符号,而无需将它们拉入自身。

    【讨论】:

    • 目前你无法在 iOS 设备上使用自定义动态库,除非它们是苹果提供的。阅读:随 SDK 一起提供。我希望这可以为您解决问题。
    【解决方案2】:

    动态库对于 iphone 应用没有任何意义,因为无法在手机上安装该库。我记得读过一些文档,其中苹果表示他们决定不使用动态库,因为他们不希望用户不得不处理查找/更新库的麻烦。为每个应用安装 1 个捆绑包要容易得多。

    【讨论】:

      【解决方案3】:

      Apple 确实允许您制作动态库。在 Mac OS X 上,它们以 .bundle 或 .dylib 结尾(在 Linux 上不是 .so 或 .a)。

      你具体想做什么?您是否为您的 dylib 创建了目标?

      【讨论】:

      • 我说的是 i-phone .a 文件
      猜你喜欢
      • 1970-01-01
      • 2011-12-06
      • 2013-12-12
      • 1970-01-01
      • 2011-02-08
      • 2018-01-23
      • 2015-03-05
      • 2011-03-13
      相关资源
      最近更新 更多