您的位置:首页 > 移动开发 > Android开发

Ubuntu上搭建android BSP的开发编译环境 && 设置定时编译任务 && ubuntu从10.04升级到12.04后编译出错

2010-06-08 10:06 1511 查看
(1)下载基于linux平台的JDK。不管是编译android系统还是在eclipse中建立.apk应用软件的开发,都需要这个。在终端中执行:apt-get install sun-java5-jdk,安装完后执行javac -version可验证安装成功与否。如果执行不了,直接执行Linux下JDK的BIN,然后配置环境变量的路径就行。

(2)下载基于linux平台的eclipse,解压。使用跟XP上的eclipse相同。

(3)在android官网下载基于linux的android SDK,解压。

(4)在eclipse中点击软件更新,升级android的ADT插件,方便android应用软件开发。并导入android SDK路径,设置***D。

(5)利用apt-get install安装一些编译常用工具包: flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip make libncurses5-dev zlib1g-dev libsdl1.2-dev libsdl1.2debian。可以用gcc --version,检验gcc是否安装成功及版本。

(6)安装交叉编译器,一般拷贝到某个目录下就可以了,比如是/usr目录,然后在.bashrc添加环境变量即可。例如:vi ~/.bashrc,然后加上export PATH=$PATH:/usr/arm-eabi-4.4.0/bin。



具体使用时,碰到的问题如下:

(1)在内核代码中运行menu config时,出现少ncurses库错误。ncurses是字符终端下屏幕控制的基本库。可能很多新开发的程序都不使用了,不过如果要编译一些老程序,还经常遇得到。执行命令 apt-get install libncurses5-dev

(2)一些常用工具的安装,比如apt-get install subversion。其它一些工具诸如perl,python一般会默认系统自带,可以通过which命令来确认是否安装,会得到安装路径。

================================================================================================================================

有些时候我们在服务器资源紧张无法编译的情况下,可以设置在服务器上的定时任务让其在转钟之后执行编译任务。设置定时任务的命令是:at 02:50,进入命令行:

warning: commands will be executed using /bin/sh

at> cd ~/

at> mkdir tst899

at> <EOT>

分别执行进入特定项目根目录,执行编译命令,回车后按CTRL+D退出命令行即可。之后,用atq命令可以查看有多少定时任务已经被提交。如果想删除计划任务,用atrm xxx就可以了,xxx是atq查询的编号。

================================================================================================================================

以前ubuntu的系统是10.04的,在上面编译MTK的android codebase一直正常。后来出于某种原因用OS自带的新力得管理器升级系统到12.04后,MTK的代码编译就出错了。具体出错原因:编译时提示gcc错误,用check-env核查确实发现gcc识别失败。

后来跟同事询问得知,应该是升级ubuntu后gcc版本过高所致。即用gcc4.4可以编译,而12.04带的是gcc4.6。所以只需恢复成gcc4.4即可。步骤是:

(1)首先在终端使用gcc -v,可以获得gcc库所在的目录,我执行后发现现在系统确实都使用的是gcc4.6。



(2)所以需要安装gcc4.4,一般使用:apt-get install gcc-4.4和apt-get install g++-4.4即可。如果在/usr/bin目录下用ls -l gcc*得到如下结果:



说明gcc4.4已经安装了。所需要做的就是把gcc链接修改成指向gcc-4.4,而不是gcc-4.6,方法是:

mv gcc gcc.bak

ln -s gcc-4.4 gcc,得到



前一条备份,后一条修改链接。对应的,g++版本也要改成指向g++-4.4,而非g++-4.6。修改结果如下:



(3)修改上述要求后,再用gcc -v查看



可知其已修改成4.4了。之后再编译或者check-env都可以成功了,省去重装系统的麻烦。在这里碰到过一个现象:gcc版本是4.4,但是check-env中就是提示gcc unknown,后来把系统语言从中文改回英文就好了。

除了以上编译出错之外,还出现过编译preloader提示“BUILD FAIL. need wine tool to sign pre-loader binary”,只需要apt-get install wine即可,需要注意的是一定要确保安装完毕。另外,在12.04上编译安卓有时会出现,提示:/bin/bash: xmllint: 未找到命令。需执行apt-get install libxml2-utils



参考原文:http://hi.baidu.com/hyemiletoe/item/0403f331f12017179cc65ed9

参考原文:http://blog.csdn.net/nseven/article/details/8288603

参考原文:http://blog.csdn.net/droyon/article/details/8655517
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: