android源码编译到一些出错问题总结
今天进行源码编译、虽然中午编译到时候遇到来一个权限问题、很轻松到一下google、百度一下解决了
但是后面还所出来另外到一个交叉编译到问题
在Ubuntu11.10下建立eabi交叉编译环境
arm-eabi-linux交叉编译环境
备注:我采用的是最新版本的UBUNTU11.10,里面的gcc,gdb,libgcc等都是最新的。
我是以普通用户的身份登陆的。
1.安装标准的C开发环境,由于Ubuntu安装默认是不安装的,所以需要先安装一下:
sudoapt-getinstallgccg++libgcc1libg++makegdb
其实这一步可以省去,但是最好检查一下,比较保险。
2.安装交叉编译器
我是从开源网上下载最新的支持EABI的交叉编译器cross的包,把它下载到/home/chloe下,然后解压
sudotarjxvfarm.tar.bz2
然后将解压后的文件都转移到/usr/local/arm下(若/usr/local/下没有arm文件夹,可先建一个sudomkdir/usr/local/arm):sudomvarm/usr/local/arm
3.把交叉编译器的路径加入到PATH
sudo vim /etc/bash.bashrc在后面加入如下代码:
if[-d/usr/local/arm/2.95.3];then
PATH=/usr/local/arm/2.95.3/bin:"${PATH}"
fi
4.使新的环境变量生效
suroot
enterthepasswd
then
#source/etc/profile
5.检查是否将路径加入PATH的方法:
echo$PATH
如果显示的内容中有/usr/local/arm/arm-2008q1/bin,说明已经将交叉编译器的路径加入PATH
自此,交叉编译环境安装完成。
6.测试安装是否成功
下面我们就来测试一个简单的例子。
/*Hello.c*/
#include<stdio.h>
main()
{
printf("helloworld!\n");
}
程序输好以后确认无误,保存。进入程序文件所在目录执行:
arm-none-eabi-gcchello.c–ohello
编译好了以后就可以下载到目标机进行测试了。当然也可以先在PC机上测试正误。用gcchello.c–ohello就可以生成PC机上程序了,在运行./hello就可以发现终端显示hello!字样。用arm-linux-gcc编译的程序在PC机上是不能运行的,运行后给出错误报告:无法执行二进制文件。说明经过交叉编译环境编译出的文件是硬件可执行的二进制代码文件。