以前都是用别人制作好的交叉编译工具。
这次尝试一下自己做。参考了网上一些文章,结合自己的实际环境,制作成功了。制作过程记录如下:
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.bz2 | 2010-Nov-03 18:11:24 | 1.7M | application/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-ng
make
这时很可能你的系统会缺少很多必要的工具,所以都得一一安装,这样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.81
Copyright (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 A
PARTICULAR PURPOSE.
This program built for i486-pc-linux-gnu
说明关键的一步已经成功了,接下来进行相关配置了。
cd /home/wsn/my_crosstool-ng
ct-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
本文记录了在Ubuntu 10.04系统上使用crosstool-ng-1.9.0从源码构建交叉编译工具的过程。首先下载并解压源码,接着安装必要的依赖工具,如bison、flex等。完成环境配置后,进行menuconfig选择目标CPU(如armv4t),保存配置并开始编译,最终在../x-tools/目录下得到自定义的交叉编译工具。

5415

被折叠的 条评论
为什么被折叠?



