2011-07-21 34 views
4

有人可以向我解释一个Cocoa框架和一个C静态库之间的根本区别吗?Cocoa框架和C静态库有什么区别?

特别是,我发现在这两种情况下,我都必须在Xcode中为我的目标引用“Link Binary with Libraries”部分中的文件(.framework或.a)。

但是,我似乎不必将.a放在“复制文件”中。我只需要将框架放入“复制文件”中即可。这种差异的原因是什么?

回答

9

A static library实际上是作为您的应用程序的一部分进行编译的,而框架随您的应用程序(或系统框架已存在)分发并动态链接。另见this question

+0

谢谢。但是.dylib呢?那些必须被放入“复制文件”构建阶段,对吧?但是,它们是否应该被复制到“框架”文件夹中?应用程序如何知道在何处查找.dylib和.framework文件,当遇到函数调用时,应用程序无法找到它? – Enchilada

+0

dylib也是动态链接的。函数调用在编译时解析(链接器运行时)。 – jtbandes

相关问题