Ubuntu下进行Android源码的编译

    费了将近一周的时间,Android源码和对应Freerunner上的源码才下载下来。上周根本不懂repo,也不知道下载中的具体状态,只知道一直在下,但遇到网络中断,重新启动就不知道是继续还是重新开始了。这周,大概了解了manifest.xml的作用,也对下载过程有了一个了解。就是这样也下载了两天一夜,在宿舍也用同学的本下载,结果慢的要死,下了两天也只下了一半不到,尤其是经常会出现错误。不过那句循环语句还是很给力,还算比较幸运,今早上一看,台式机这边下载成功了,真是幸运。

    下载完后,一定要先备份。

    最初我是想在Fedora下进行make文件系统,但Fedora上还没有装相应的编译环境,尤其是JDK1.5,因此首先就安装它。在sun网站上下载了jdk.1_5_0_22-linux-i586-rpm.bin,执行./jdk.1_5_0_22-linux-i586-rpm.bin后,在/etc/profile中增加环境变量:

export JAVA_HOME=/usr/java/jdk1.5.0_22 

export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin 

export CLASSPATH=.:/usr/java/jdk1.5.0_22/lib:/usr/java/jdk1.5.0_22/jre/lib:$CLASSPATH 

    之后进行注销后重新登录,输入java -version会返回对应的java版本则jdk安装成功。(网上说JDK1.6不行,因此选择的是jdk1.5)

    安装完JDK后,再安装其他的编译环境,如:flex,bison,gperf,python,valgrind,curl,git,build-essential等,用yum安装ncurses-devel libX11-devel.i686 readline-devel,但是libsdl-dev,libesd0-dev,libwxgtk2.6-dev利用yum无法找到,因此跳过。

     进入文件系统的根目录进行make。

     总是报错,可能是由于编译环境装的有问题,不知道怎么解决,网上关于Fedora编译环境的安装的相关资料也不能解决问题,并且google官方提供的是ubuntu下的安装过程,幸好还有一个ubuntu的虚拟机,直接进入ubuntu的环境进行make。

 

 

     进入ubuntu后,仍然面临编译环境的安装,除了JDK外,直接运行apt-get install -y git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev即可,这倒是方便。在安装jdk1.5时,由于ubuntu下不能安装rpm软件包,将rpm转换为deb包失败,因此就直接在/usr中新建java文件夹,将jdk.1_5_0_22-linux-i586.bin考入java文件夹后运行./jdk.1_5_0_22-linux-i586.bin,将jdk安装到此处,再添加环境变量即可。(注:jdk.1_5_0_22-linux-i586.bin与jdk.1_5_0_22-linux-i586-rpm.bin的区别就在于运行后者的时候,会固定将软件包安装在/usr/java文件夹下,而前者需要自己设定安装位置,也就是需要自己创建java文件夹,并在java文件夹下操作)。

    编译环境安装完成,进入文件系统根目录进行make。

   出现以下几个问题:

   1、symbol lookup error: /usr/lib/libmpfr.so.4: undefined symbol: __gmp_get_memory_functions 并停止编译

   解决方法:之前的gmp版本是4.1.4,直接编译安装4.3.0的版本(安装过程:下载gmp-4.3.0.tar.bz2,将其解压后运                     行./configure;make;make install即可)。不知道方法对不对,但好像解决了上面的问题。

    2、出现lzo/lzo1x.h: No such file or directory和external/mtd-utils/mtd-utils/compr_lzo.c:29: fatal error: lzo/lzo1x.h: No     such file or directory compilation terminated的问题,并停止编译

    解决方法:apt-get install liblzo2-dev,在网上进行的搜索,也没有具体答案,安装后编译也不再出错。

    3、"mkimage" command not found 并停止编译

    解决方法:从ftp://ftp.koansoftware.com/public/linux/mkimage/下载mkimage二进制文件,将其添加到/usr/bin。之后在进行      文件系统的make,通过。

   目前文件系统还在编译过程中,分析造成上面问题的原因应该是编译环境没有装好,这可能涉及到一开始装ubuntu系统时有些软件包就没有装上,之后要在同学的ubuntu上试下,感觉如果正常按照教程安装编译环境的话,不应该出现上面三个问题。

 

参考资料:

1、jdk1.5的安装:http://www.linuxdiyf.com/viewarticle.php?id=5992      http://wenson.javaeye.com/blog/65292

2、Fedora13下编译android:http://kongweile.javaeye.com/blog/770377

3、ubuntu下编译环境的安装:http://zhanglibin1986.javaeye.com/blog/778219

4、关于mkimage:http://www.quickembeddedtips.com/resolving-mkimage-command-not-found-u-boot-images-will-not-be-built-error

 

PS:现在还在make过程中,上面的内容主要是做一下记录方便以后参考,如果接下来make出错,会继续贴上解决方法。

 

万里长征的第一步已经走出去了,加油。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值