Kernel
為什麼建構 Android 核心需要工具鏈,而編譯整個原始碼卻不需要?
如此處所示,編譯 Android 核心需要一個預建構的 GCC 工具鏈(或來自 Android NDK 的等效工具鏈)。交叉編譯是有意義的;我們正在為具有不同平台的設備編譯程式碼。
但是,編譯 Android 原始碼的指南在任何地方都不需要下載工具鍊或 NDK,而且我的理解是,所使用的工具(SDK 等)都不包含工具鏈。
當然,從頭開始編譯原始碼也會建構核心。發生了什麼事——為什麼我們在建構核心時需要一個 gcc 工具鏈,而不是另一種?
兩者都需要 gcc 工具鏈。
工具鍊是 android 原始碼樹的一部分。在建構整個 android 原始碼之前,您使用“午餐”工具,該工具設置環境變數,以便可以使用預建構的工具鏈。
http://source.android.com/source/building-running.html#choose-a-target
關於編譯 android 核心的頁面有不同的說明,因為它假定您只想建構一個核心,甚至可能不會下載整個 android 原始碼樹。這就是為什麼它解釋瞭如何以不同於“午餐”的方式獲取和選擇工具鏈。