2011-07-21 71 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

相關問題