linux环境Android源码编译环境搭建
之前编译系统apk(区别一般apk具有系统签名)、系统库、镜像都是在别人的搭建好的服务器上进行操作的,虽然从事android移植工作快两年了,但还没自己动手搭建一个android源码编译环境,废话不多说,go(HISI芯片,源码是Hisi提供的)。
一、安装linux操作系统
可以自己的电脑上装一个虚拟机或者双系统,建议用另外一台电脑做服务器,方便以后的工作。linux操作系统安装方式有很多,下面介绍几种常用的安装方法。
1.用光盘安装(最简单)
2.linux镜像+wubi.exe(网上资料很多)
首先,空出一个盘符(如F盘),将下载的ubuntu-12.04-desktop-i386.iso单独放在另一个盘如(D盘),从D盘里的镜像中解压出 wubi.exe,并将ubuntu-12.04-desktop-i386.iso和 wubi.exe放在同一个文件夹下用英文命名(如ubuntu-12.04),然后双击 wubi.exe会安装而不会再去下载镜像,安装过程中让你选择盘符时选择想要安装盘如F盘。
3.使用u盘进行安装(博主推荐)
http://blog.csdn.net/xiazdong/article/details/7523331
注意:安装的时候有install和install_server两个选项,server是不带desk无桌面版本,安装的时候选install就行了
二、搭建编译环境(服务、环境变量等)
安装之后执行下列步骤:
步骤1:添加root权限
在新系统安装之后是没有root用户的,我们需要通过sudo passwd root来添加root用户并赋予初始密码。
步骤2:安装SSH服务
步骤3:配置samba
SMB(Server Message Block 信息服务块)协议,是一种在局域网上共享文件夹和打印机的一种通信协议,它为局域网内不同计算机提供文件以及打印机等资源的共享服务。
[share]path = /home/shareavailable = yesbrowseable = yespublic = yeswritable = yes(注意: 上面的设置中,username 换成你的用户名, 如果在前面有“#”,需要先把它去掉)
#set java environment
export JAVA_HOME=/usr/local/java/jdk1.6.0_38
export JRE_HOME=/usr/local/java/jdk1.6.0_38/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
java -version
步骤5:配置交叉工具链
方法1:直接按照hisi的文档,执行他们提供的脚本一步步来
(1)安装依赖包
$ sudo apt-get install git-core gnupg flex bison gperf \ build-essential zip curl zlib1g-dev libc6-dev \ lib32ncurses5-dev ia32-libs x11proto-core-dev \ libx11-dev lib32readline5-dev lib32z-dev \ libgl1-mesa-dev g++-multilib mingw32 tofrodos( 2)确保服务器上的shell是bash,如果服务器上的shell不是bash,则执行下面操作
方法2:其他几个步骤和上面差不多,就是不用执行hisi提供的脚本,自己实现脚本里面操作
echo $PATH
三、在编译过程中出现的问题
(1)lunch的时候出现
root@ubuntu:/home/ipanel/zhoulc/Android_4.0_JiuLian# lunch full_godbox-eng The program 'make' is currently not installed. You can install it by typing: apt-get install make ** Don't have a product spec for: 'full_godbox' ** Do you have the right repo manifest?直接执行:apt-get install make
(2)lunch的时候/bin/bash: prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc: No such file or directory错误
失败的时候出现了会报下面的错误(非常头疼,找了好久才找到)
root@ubuntu64:/home/zhangbin# root@ubuntu64:/home/zhangbin# sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting 'lib32z1-dev' instead of 'lib32z-dev' Package lib32readline5-dev is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: lib32readline-gplv2-dev然后执行下面的命令就可以解决找不到/bin/bash: prebuilt/linux-x86/toolchain/arm-linux-androideabi-4.4.x/bin/arm-linux-androideabi-gcc: No such file or directory的问题了
root@ubuntu64:/home/zhangbin# sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos
然后vi 把/etc/profile 改回来
(4)编译错误
(5)编译错误
/bin/bash: xmllint: command not found
方法:sudo apt-get install libxml2-utils
/bin/bash: xsltproc: command not found
方法:sudo apt-get install xsltproc
最后附送两份文档
由于博主没有按文档一步步来操作,所以搭建过程中出现了各种各样的错误,有文档还是好帮手啊。自己动手亲自做了,才知道好多细节问题要注意,最大的收获还是属性了linux的环境和vi操作。
ubuntu10.04配置手册.pdf+Android SDK 开发指南.pdf.rar