Xcode 應用程序構建階段(Build Phases)分析(1)

在Xcode編譯一個應用程序需要幾個步驟,也稱爲構建階段(Build Phases),有如下幾個build phase,如下圖所示:

1) 編譯源文件(Compile Sources)

這個階段編譯所有的源文件;默認情況下,項目中添加任何一個源文件,也將添加到編譯列表中。

2) 連接二進制文件和庫(Link Binary With Libraries)

在完成源文件的編譯之後,連接框架(或庫),這樣代碼就可以使用這些框架類了。

3) 複製綁定資源(Copy Bundle Resources)

在源文件編譯和連接庫之後,創建一個可執行文件,並放置在應用程序的綁定中,其實就是一個文件夾。其中資源文件將和可執行文件一起添加到綁定(bundle)中。這些資源文件是數據文件,應用程序在運行時需要使用,如XIB 文件和圖像文件、聲音文件等等。默認情況下,添加到項目中的文件,如不是源代碼文件,將添加到這個構建階段(Build Phase)。

一般情況下,在Compile Sources階段,將發現錯誤,但有時也會在Link Binary With Libraries 階段出現錯誤。在這些階段出現的錯誤,一般容易診斷和糾正。

預處理(Preprocessing)

Compile Sources 構建階段分爲兩步:預處理(Preprocessing)和編譯(Compiling)。預處理階段的目標是爲每一個實現文件(.m)創建中間文件(intermediate file)。中間文件仍然類似實現文件的Objective-C代碼,但是中間文件會變得非常大。

在創建中間文件時,預處理器負責處理實現文件(.m)中所有的預處理指令(preprocessor directives)。預處理指令是所有以 # 開頭的語句,如 #import。#import 語句將替換爲實際引用文件的內容。

例如,一個實現文件 ***.m 引用了 ***.h 頭文件;爲 .m 創建的中間文件將包含 ***.h和 ***.m文件。還不止這些,並且 ***.h 頭文件引用了其他 2 個文件 UIKit.h和CoreLocation.h,還有可能這 2 個文件引用了其他的頭文件 .h,這些頭文件將全部包含在該實現文件***.m 創建的中間文件中(intermediate file)。

下圖是預處理創建的中間文件(intermediate files):

轉載:http://www.entlib.net/?p=1645  EntLib.net 技術分享平臺

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章