可執(zhí)行文件
源代碼是如何編譯成可執(zhí)行文件的呢?我們可以通過clang -ccc-print-phase main.m命令查看

clang查看.png
可見將程序編譯成可執(zhí)行文件的步驟:
源代碼 --> 預(yù)處理器 --> 編譯器 --> 匯編 --> 機器碼 --> 鏈接 --> 可執(zhí)行文件
靜態(tài)庫和動態(tài)庫的區(qū)別
庫:庫就是寫好的、現(xiàn)有的、成熟的程序代碼的集合。
靜態(tài)庫:鏈接時會被完整的復(fù)制到可執(zhí)行文件中,被多次使用就有多份拷貝。
動態(tài)庫:鏈接時不復(fù)制,程序運行時由系統(tǒng)動態(tài)加載到內(nèi)存,系統(tǒng)只加載一次,多個程序共用,節(jié)省內(nèi)存。
圖解

靜態(tài)庫和動態(tài)庫的區(qū)別.png
靜態(tài)庫的制作
靜態(tài)庫主要有兩種形式:.a 和 .framework
動態(tài)庫的形式主要有:.tdb 、.dylib、.framework 前兩種還沒見過,最常見的就是.framework的動態(tài)庫
靜態(tài)庫制作方式請看:http://www.itdecent.cn/p/5218d0ea26c9
注意:swift不支持靜態(tài)庫,只支持動態(tài)庫