设为首页 加入收藏

TOP

Ubuntu 10.04 crosstool-0.43 建立交叉编译环境
2014-11-24 03:06:22 来源: 作者: 【 】 浏览:1
Tags:Ubuntu 10.04 crosstool-0.43 建立 交叉 编译 环境

首先要保证系统中有以下软件:


Bison、flex 、build-essential、patch 、libncurses5-de


(1)首先把GCC 降到4.1。


sudo apt-get install gcc-4.1


sudo rm /usr/bin/gcc


sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc


由于crosstool在相关configure中文件中会检测


gcc的版本 高于4.1的版本会报错。


(2)修改sh版本,把dash改为bash


ls -la /usr/bin 若链接的dash则运行


sudo dpkg --reconfigure dash


选择no,删除dash。(在建立交叉编译环境后,可以在运行该命令选择yes安装dash)。


(3)解压crosstool源码包,修改配置文件。


修改demo-arm-softfloat.sh文件。


TARBALLS_DIR=$HOME/downloads //表示下载的源码的存放目录


RESULT_TOP=/opt/crosstools //表示生成的工具链的存放目录


可以根据自己的实际情况进行修改。


本方案需要以下软件包:


gcc-3.4.5.tar.gz


glibc-2.3.6.tar.gz


linux-2.6.26.5.tar.gz


crosstool-0.43.tar.gz


binutils-2.15.tar.gz


glibc-linuxthreads-2.3.3.tar.gz


linux-libc-headers-2.6.12.0.tar.bz2


修改相关文件gcc-3.4.5-glibc-2.3.6.dat


只需要将文件中各源码版本和源码包匹配即可。


(4)运行./ demo-arm-softfloat.sh


运行一短时间后出现以下错误提示:


*** These critical programs are missing or too old: as ld。


这个问题其实跟降gcc版本是一个道理,并不是as与ld版本太低,而是版本高了crosstool不认识了。as 和ld都是binutils中的工具,在9.04以前binutils的版本是低于2.20的,在crosstool中的相关configure文件中有限制。然而10.04中binutils的版本为2.20,crosstool就理直气壮的说as和ld版本太低不能建立交叉编译环境。


我的解决方法是在www.gnu.org的网站上下binutils的2.18版本,然后替换系统中的2.20版本。方法如下


解压源码包


cd binutils-2.18


./configure --prefix=/tmp/binutils --disable-nls (-prefix后面的是生成可执行文件存放的位置可以自己定义)


make all


make install


编译成功后在/tmp/binutils/bin/中就生成了ld as程序的可执行文件


重新链接/usr/bin/ld 于/usr/bin/as文件


sudo rm /usr/bin/ld /usr/bin/as


sudo ln –s /tmp/binutils/bin/ld /usr/bin/ld


sudo ln –s /tmp/binutils/bin/as /usr/bin/as


然后可运行ld –v 和as –v 查看版本是否为2.18


然后再运行crosstoll-0.43目录下的demo-arm-softfloat.sh即可成功建立交叉编译环境了。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Fedora 13下配置OpenGL开发环境 下一篇关于C#和Java平台的MD5

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Announcing October (2025-12-24 15:18:16)
·MySQL有什么推荐的学 (2025-12-24 15:18:13)
·到底应该用MySQL还是 (2025-12-24 15:18:11)
·进入Linux世界大门的 (2025-12-24 14:51:47)
·Download Linux | Li (2025-12-24 14:51:44)