Linux:crosstool-ng制作自己的交叉编译工具

来源:互联网 发布:java如何调用api接口 编辑:程序博客网 时间:2024/05/01 03:25

以前都是用别人制作好的交叉编译工具。

这次尝试一下自己做。参考了网上一些文章,结合自己的实际环境,制作成功了。制作过程记录如下:

HOST 系统:Ubuntu 10.04

Linux内核:  linux-2.6.38.12


获取crosstool-ng源码包:

http://crosstool-ng.org/download/crosstool-ng/

我选了下面这个版本:

crosstool-ng-1.9.0.tar.bz22010-Nov-03 18:11:241.7Mapplication/x-bzip

tar xvf crosstool-ng-1.9.0.tar.bz2  得到crosstool-ng-1.9.0文件夹

接下来建立一个存放crosstool的文件夹,我的是/home/wsn/my_crosstool-ng

然后进入这个crosstool-ng-1.9.0文件夹

./configure --prefix=/home/wsn/my_crosstool-ngmake

这时很可能你的系统会缺少很多必要的工具,所以都得一一安装,这样make才能通过

缺少的工具,可以通过sudo apt-get install xx来安装,下面是很可能缺少的:

1. bison

2. flex

3. makeinfo (应该是texinfo)

4. automake

5. libtool

6. cvs

7. cur

8. gcj

9. g++ 等,

通过之后, make install

然后,设置系统的环境:

sudo gedit /etc/profile

在最后加入:

export PATH=$PATH:/home/wsn/my_crosstool-ng/bin

退出,生效环境profile:

source /etc/profile

把crosstool-ng-1.9.0/sample/arm-unknown-eabi/crosstool.config

拷贝到my_cosstool-ng下,重命名为.config

这样,需要重新打开一个termial,输入 ct-ng help,应该有以下类似输出:

GNU Make 3.81Copyright (C) 2006  Free Software Foundation, Inc.This is free software; see the source for copying conditions.There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR APARTICULAR PURPOSE.This program built for i486-pc-linux-gnu

说明关键的一步已经成功了,接下来进行相关配置了。

cd /home/wsn/my_crosstool-ngct-ng menuconfig

进行工具链的menuconfig 

根据自己的目标CPU进行设置,比如CPU 是s3c2440的话,主要配置一下几个选项就行了,其他默认

Target options      --> arm

Architecture level  --> armv4t

Floating point        --> software

其中:

Tuple's vendor string 中可以更改自己平台的名称,默认是unknown

配置好后最后保存:

Save an Alternate Configuration file

接下来就是漫长的编译了

ct-ng build

这个过程太煎熬了,当时耗时3个多小时, 真是汗颜...

wsn@wsn-laptop:~/bellsent/my_crosstool-ng$ ct-ng build[INFO ]  Performing some trivial sanity checks[INFO ]  Build started 20120617.213312[INFO ]  Building environment variables[EXTRA]  Preparing working directories[EXTRA]  Installing user-supplied crosstool-NG configuration[EXTRA]  =================================================================[EXTRA]  Dumping internal crosstool-NG configuration[EXTRA]    Building a toolchain for:[EXTRA]      build  = i686-pc-linux-gnu[EXTRA]      host   = i686-pc-linux-gnu[EXTRA]      target = arm-Davinci-linux-gnueabi[EXTRA]  Dumping internal crosstool-NG configuration: done in 0.14s (at 00:02)...

最后编译得出的交叉工具在../x-tools/下


相关参考:

http://blog.csdn.net/HumorRat/article/details/5615298



原创粉丝点击