正如所见这里,编译 Android 内核需要预构建的 GCC 工具链(或 Android NDK 中的等效工具链)。交叉编译有意义;我们正在编译代码为了具有不同平台的设备。
但是,那Android 源码编译指南并不需要下载工具链或 NDK,而且我的理解是所使用的工具(SDK 等)也不包含工具链。
当然,从头开始编译源代码也会构建内核。这是怎么回事——为什么我们在以一种方式构建内核时需要 gcc 工具链,而不是另一种方式?
答案1
两者都需要 gcc 工具链。
该工具链是 android 源代码树的一部分。在构建整个 Android 源代码之前,您可以使用“lunch”工具,该工具设置环境变量,以便可以使用预构建的工具链。
http://source.android.com/source/building-running.html#choose-a-target
关于编译 Android 内核的页面有不同的说明,因为它假设您只想构建一个内核,甚至可能不需要下载整个 Android 源代码树。这就是为什么它解释了如何以不同于“午餐”的方式获取和选择工具链。