Xcode for iPhone中静态和dynamic库的区别

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

虽然您可以为Mac OS X构builddynamic库,但不能将其用于iPhone开发。

一个静态库仅仅是一个对象文件的存档,它被拉进一个链接到它的程序中。 链接器将解压缩所有的存档文件,并在链接过程中将其与其他目标文件一起引入。

然而,一个dynamic库创build一个共享目标文件,类似于一个程序,但是没有入口点,哪些程序可以链接到这些共享目标文件中,并且将它们自己调出到这些共享库中,作为它们的符号,而不用将它们拉入自己。

dynamic库对iphone应用程序没有任何意义,因为没有办法在电话上安装库。 我记得读过一些文档,苹果表示他们决定不使用dynamic库,因为他们不希望用户必须处理查找/更新库的麻烦。 每个应用程序只安装一个软件包会简单得多。

苹果允许你制作dynamic库。 在Mac OS X上,这些文件以.bundle或.dylib结尾(而不是Linux上的.so或.a)。

什么,你想要做什么? 你有没有为你的dylib创build一个目标?