2011-07-27 46 views
0

有谁能够解释一下这些包有扩展名(.a)中,我们有时把它添加到Xcode的:什么是具有扩展名(一)包

1)究竟是那些包?

2)它们与具有(.framework)扩展名的其他软件包有什么不同?

3)我可以自定义/更改(.a)包内的代码吗?

非常感谢你提前。

回答

0

它们是由ar生成的静态库(或压缩文件)。它包含一个或多个.o目标文件,其中包含链接所需的编译代码和符号。

A .framework包含指定接口的头文件(.h)以及.dylib(共享库)。

静态库已经被编译成机器代码 - 修改代码并不容易。与共享库不同,静态库被设计为通过链接器链接 - 目标代码将被真实地复制到目标文件中,而共享库要求它在运行时存在,因为只有引用被创建。

+0

非常感谢Yann对你的回答,我有两个问题:1)你上面提到的(ar)是什么东西,它是从终端生成静态库的命令? 2)给出静态库是一个机器代码,当我在xcode中导入它时,如何从中受益?我的意思是,我无法从静态库中读取机器码,因此我不知道在哪里使用它,它的真正优势在哪里? – JAHelia

+0

@Ja:1)是的,虽然Xcode会在构建静态库时为您调用它,2)您需要知道此库具有的接口,通常位于库旁边的头文件中。 –

+0

原谅我Yann我不能投票,因为我需要更多的声望来这样做......非常感谢你的支持 – JAHelia