静态库允许应用程序在编译时将代码加载到其地址空间.这导致磁盘上的大小更大,启动时间更慢.因为库的代码直接添加到链接目标的二进制文件中,这意味着要更新库中的任何代码,也必须重建链接目标.动态库(.dylib)
动态库允许应用程序在运行时实际需要时将代码加载到其地址空间中.因为代码没有静态链接到可执行二进制文件中,所以在运行时加载会带来一些好处.主要是,库可以使用新功能或错误修复进行更新,而无需重新编译和重新链接可执行文件.此外,在运行时加载意味着各个代码库可以拥有自己的初始化程序,并在从内存中卸载之前清理自己的任务