我在Mac电脑上编译Android的内核源代码遇到了不少问题,下面对遇到的问题进行一个简单的总结,希望对大家有所帮助。1、Android编译内核的源代码和编译Rom的源代
我在Mac电脑上编译Android的内核源代码遇到了不少问题,下面对遇到的问题进行一个简单的总结,希望对大家有所帮助。
1、Android编译内核的源代码和编译Rom的源代码是分开的,,因此如果要编译内核的话,需要单独下载。
用git从谷歌的网站上克隆:git clone
注意这里不要用https,我用这个的时候经常卡死,下载不了,记得一定要用http。
2、下载完成后,你会发现整个目录是空的,这是因为当前默认分支是master,先用git branch -a命令查看有哪些分支:
remotes/origin/HEAD -> origin/master
remotes/origin/android-goldfish-2.6.29
remotes/origin/android-goldfish-3.4
remotes/origin/linux-goldfish-3.0-wip
remotes/origin/master
这里我们选择android-goldfish-3.4分支,用git checkout android-goldfish-3.4切换到该分支,切换的时候会进行解压,解压完成后,就会发现目录下有很多文件了。
3、打开Makefile文件,找到:
ARCH
?= $(SUBARCH)
CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
改成:
ARCH
?=arm
CROSS_COMPILE ?=arm-eabi-
注意 ?=arm 千万不能有空格,否则会出现
如果你编译过程中遇到下面错误:
scripts/mod/mk_elfconfig.c:4:17: error: elf.h: No such file or directory,说明你的电脑缺少elf.h头文件,请到网站?getfile=16683 将里面的内容复制下来,保存为elf.h,然后将它保存到scripts/mod 目录下,同时将mk_elfconfig.c,modpost.h中的修改为"elf.h"
6、然后编译整个内核
make
编译成功后,会看到如下信息
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
7. 然后用模拟器加载新编译好的内核
emulator -kernel arch/arm/boot/zImage
打开关于手机,就可以看到新编译好的内核
本文出自 “移动开发” 博客,请务必保留此出处