linux top交叉编译_Linux 交叉编译工具链

搞了一个“中基学生电脑”(详细的见这里http://www.ouravr.com/bbs /bbs_content.jsp?bbs_sn=1420850&bbs_page_no=1&search_mode=4& search_text=dack&bbs_id=9999),当作arm开发板用。但本人对linux不熟,arm更是没有搞过,所以从头开始 学,先编译一套工具链才能进行下一步。

了解到有crosstools可以方便的编译工具链,甚至还有编译好的下载,但是鉴于本人初学,什么都不懂,决定还是自己一步一步编译,权当熟 悉linux,熟悉一下编译流程了。花了一个多星期终于搞好了,其实第一次编译成功用了不到一个星期,为了写这篇文章和搞清楚其中的一些不明所以的地方, 又重新编译了两次,现在基本搞清楚了,发上来与大家共享。其实还有一些不明所以的地方,以后再说吧,实在不想再编译了。

中基是基于sa1110芯片的,主要部分和assabet开发板一样。以下linux头文件是基于这样的系统产生的,不过我想也能用于其他型号的芯片。

先说说我的编译环境,一台384M内存的p4电脑,win2000系统,开vmware虚拟机,装了一个puppy linux 3.01,这个linux以小巧见称。可想而知有多慢了。

个人感觉,编译这个很考人品,人品不好总会碰到一些稀奇古怪的问题。呵呵,我估计是那个人品最差的。

虽然我已经很小心,最后一遍命令都是粘贴上去执行的,后面又进行了一些修改,主要是安装目录,但文中难免有错漏,发现了请指出。

初学者可以尝试自己编译工具链,能够学到一下东西。

所有用到的软件都是最新版的。

好了,闲话少说,开干。

1.下载

ftp://mirrors.kernel.org/gnu/binutils/binutils-2.18.tar.gz

ftp://mirrors.kernel.org/gnu/gcc/gcc-4.3.2/gcc-4.3.2.tar.gz

ftp://mirrors.kernel.org/gnu/gdb/gdb-6.8.tar.gz

ftp://mirrors.kernel.org/gnu/glibc/glibc-2.7.tar.gz

ftp://mirrors.kernel.org/gnu/glibc/glibc-ports-2.7.tar.gz

http://ftp.osuosl.org/pub/clfs/conglomeration/glibc/glibc-2.7-libgcc_eh-1.patch

ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.27.tar.gz

http://www.mpfr.org/mpfr-current/mpfr-2.3.2.tar.gz

ftp://ftp.gmplib.org/pub/gmp-4.2.4.tar.gz

2.建立工作目录

我的工作目录放在一个单独的盘上,/mnt/hdc1。你可以任选一个目录做工作目录,例如~/work。将下载的文件全部放到工作目录下。

工作目录中建立目录build,用来放解压后的源码和build时产生的文件,最终产生的工具放到/usr/armtools下。

3.设置环境变量

在etc/ld.so.conf中加上一行/usr/local/lib,用来设置动态库的搜索目录,已经有的话就不用加了,因为gmp和mpfr会装到这里,不加以后的编译通不过。

开一个终端窗口

export TARGET=arm-linux

export PREFIX=/usr/armtools

export PATH=$PATH:/usr/armtools/bin

export BUILD_DIR=/mnt/hdc1/build

4.安装gmp和mpfr库,这两个库是gcc需要的,老版本如果不用fortan77的话不需要,但新版本只编译c也需要。有的话就不用装了。

cd /mnt/hdc1 进入工作目录

cd build

tar -zxvf ../gmp-4.2.4.tar.gz 这里有个技巧,打完gm后直接按tab键文件名会自动补全。后面需要输入目录的地方都可以这么用。

cd gmp-4.2.4

./configure

make

make check 文档里说这个非常重要。

make install

cd ..

rm -rf gmp-4.2.4 装完源目录没用了,删掉,节省空间。

ldconfig /usr/local/bin

tar -zxvf ../mpfr-2.3.2.tar.gz 这里有个技巧,打完gm后直接按tab键文件名会自动补全。后面需要输入目录的地方都可以这么用。

cd mpfr-2.3.2

./configure

make

make check 文档里说这个非常重要。

make install

cd ..

rm -rf mpfr-2.3.2 装完源目录没用了,删掉,节省空间。

ldconfig /usr/local/bin 更新一下缓存

完成,这一步一般不会出问题。

5.编译binutils

tar -zxvf ../binutils-2.18.tar.gz

mkdir binutils-2.18-build

cd binutils-2.18-build

../binutils-2.18/configure --target=$TARGET --prefix=$PREFIX

make

make install

cd ..

rm -rf binutils-2.18

rm -rf binutils-2.18-build

ok,这一步也很简单,完成后armtools里会有很多文件。

6.编译bootstrap gcc

tar -zxvf ../gcc-4.3.2.tar.gz

mkdir

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值