编译Android系统的步骤
编译Android系统的步骤
- 设置环境
source build/envsetup.sh
- 加载编译目标
lunch
可以直接回车,选择对应的目标号码
比如说:
aosp@ubuntu:~/android5.1$ lunch
You're building on Linux
Lunch menu... pick a combo:
1. aosp_arm-eng
2. aosp_arm64-eng
3. aosp_mips-eng
4. aosp_mips64-eng
5. aosp_x86-eng
6. aosp_x86_64-eng
7. aosp_hammerhead-userdebug
8. aosp_mako-userdebug
9. aosp_manta-userdebug
10. mini_emulator_arm64-userdebug
11. mini_emulator_x86_64-userdebug
12. m_e_arm-userdebug
13. mini_emulator_x86-userdebug
14. mini_emulator_mips-userdebug
15. aosp_shamu-userdebug
16. aosp_flo-userdebug
17. aosp_tilapia-userdebug
18. aosp_deb-userdebug
19. aosp_grouper-userdebug
20. full_fugu-userdebug
21. aosp_fugu-userdebug
22. aosp_flounder-userdebug
Which would you like? [aosp_arm-eng] 5
- make
make -j16
后面这个任务数,一般是线程数的2倍
如果不加的话,构建系统会自动选择最适合您系统的并行任务计数。
下载 Jdk1.7.x
如果没有注册甲骨文的账号,同学们可以通过网盘下载。 我传到网盘上了。 链接:https://pan.baidu.com/s/1PAAfUdkbwRlzbt72upHHlw 提取码:jj5b
解决JDK的版本问题
把jdk的包拷贝到我们的内部系统里Ubuntu里
进行解压:
tar -xvf jdk-7u80-linux-x64.tar.gz
配置环境变量
视频里的系统的java的地址是:
/home/aosp/devTools/jdk1.7.0_80/bin
配置环境变量步骤
编辑自己Home目录下的.profile文件
追加以下内容
export JAVA_HOME=/home/aosp/devTools/jdk1.7.0_80/bin export PATH=$PATH:$JAVA_HOME
要使配置生效,需要source一下
编译输出log
make -j16 2>&1 | tee build.log
问题:unsupported reloc 43 against global symbol stderr
修改 build/core/clang/HOST_x86_common.mk
CLANG_CONFIG_x86_LINUX_HOST_EXTRA_ASFLAGS :=
--gcc-toolchain=$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG) \
--sysroot=$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/sysroot \
-B$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/bin \
加上这一段代码:
-B$($(clang_2nd_arch_prefix)HOST_TOOLCHAIN_FOR_CLANG)/x86_64-linux/bin
加完以后,保存退出,然后
make clean
其实就是把out目录删除了