【发布时间】:2016-11-28 10:10:40
【问题描述】:
我知道什么是 Objective c 中的编译和运行时,(方法 swizzling 是运行时)但我想知道这两个库之间的界限是什么?一个 .a 和 .dylib ?除了说明一个是静态的,另一个是动态的之外,它们还有什么用途?我们什么时候需要一个而不是另一个?
【问题讨论】:
标签: ios xcode frameworks static-libraries
我知道什么是 Objective c 中的编译和运行时,(方法 swizzling 是运行时)但我想知道这两个库之间的界限是什么?一个 .a 和 .dylib ?除了说明一个是静态的,另一个是动态的之外,它们还有什么用途?我们什么时候需要一个而不是另一个?
【问题讨论】:
标签: ios xcode frameworks static-libraries
【讨论】:
.a 代表静态库
.dylib 代表动态库
静态库 (.a)
静态库 (.a) 是一组已编译的类和函数,可与 iOS 应用程序开发项目一起使用。它是编译后的二进制文件或胖文件,可以在项目之间共享。
您可能出于不同的原因想要创建一个静态库。
例如:
您希望捆绑您和/或您团队中的同事经常使用的一些课程,并轻松共享这些课程。
您希望能够集中一些通用代码,以便轻松添加错误修复或更新。
您想与多人共享一个库,但不允许他们看到您的代码。 -
动态库
以扩展名.dylib 结尾的文件是一个动态库:它是一个在运行时而不是在编译时加载的库。如果您熟悉来自 Windows 或 DSO 的 DLL,那么它或多或少是相同类型的东西,只是有些曲折。
dylib 类似于 windows *.dll 文件。它们包含旨在被许多应用程序重用的通用、不可修改的代码。
【讨论】: