crosstool-ng-1.20.0制作交叉编译工具

来源:互联网 发布:大闹天宫武器进阶数据 编辑:程序博客网 时间:2024/05/21 21:37

版本更新到crosstool-ng-1.20.0

下面记录制作过程中出现的一些问题以及相应的解决办法,方便以后查询使用以及造福于各位嵌入式爱好者。

crosstool-ng与crosstool不同的地方是前者需要我们进行亲手配置与安装。

声明:以下安装步骤部分参考网络文章,来源不可考。

第一步安装crosstool-ng工具(本文选择最新版本1.20.0,这样就省得打补丁了)

下载网址:http://www.crosstool-ng.org/

以下都是我个人的安装地址,大家根据实际情况自己喜好决定,所有过程都是回忆性记录,请大家注意自己仔细分析。

下载crosstool-ng-1.20.0.tar.bz2之后(download)解压到 /opt  目录下,tar xjf crosstool-ng-1.20.0.tar.bz2   -C  /opt

/opt下会生成一个目录crosstool-ng-1.20.0

我们来到:/opt/crosstool-ng-1.20.0/samples/

可以看到有很多中选择,针对不同架构的,带有不同编译功能、针对的对象不同。

本文选择的是 arm-unknown-linux-gnueabi

我们在目录:/opt/crosstool-ng-1.20.0/下创建两个文件夹,后面会用到。

mkdir  ./crosstool-ng-1.20.0_build

mkdir  ./crosstool-ng-1.20.0_install

进行以下操作:将 arm-unknown-linux-gnueabi  文件夹下的文件全部复制到

目录/opt/crosstool-ng-1.20.0/crosstool-ng-1.20.0_build

cp  -Rf   ./*   /opt/crosstool-ng-1.20.0/crosstool-ng-1.20.0_build

将里面的文件crosstool.config 修改成 .config (vi .config可以对其进行修改)

mv crosstool.config .config

来到目录:/opt/crosstool-ng-1.20.0

在此之前,先准备好以下安装包gperf\bison\flex\texinfo\gawk\libtool\automake\libncurses5-dev

then,

"

           ./configure --prefix=/opt/crosstool-ng-1.20.0/crosstool-ng-1.20.0_install
           make

           make install

"
/opt/crosstool-ng-1.20.0/crosstool-ng-1.20.0_install目录下:
可以看到生成三个文件夹:bin lib share

执行echo "PATH=$PATH:/opt/crosstool-ng-1.20.0/crosstool-ng-1.20.0_install/bin" >> ~/.bashrc

然后  source ~/.bashrc

执行  ct-ng help

出现一堆帮助信息:

*******

*******

*******

*******
说明我们的crosstool-ng-1.20.0安装成功了!

第二步:生成交叉编译工具

/opt/crosstool-ng-1.20.0/crosstool-ng-1.20.0_build

目录下执行(its very important)  

ct-ng menuconfig

出现配置画面

做些配置修改:

(armv4t) Architecture level
(arm920t) Tune for CPU

查看.config文件:可以看到配置的依赖文件的相关信息。

大家仔细观察不难发现用到以下依赖包:

binutils-2.19.1.tar.bz2

gcc-4.3.2.tar.bz2

libelf-0.8.13.tar.gz

mpfr-3.0.0.tar.bz2

uClibc-0.9.30.2.tar.xz

cloog-ppl-0.15.10.tar.gz

ncurses-5.7.tar.gz

gdb-6.8.tar.bz2

linux-2.6.32.25.tar.bz2

dmalloc-5.5.2.tgz

ppl-0.11.tar.bz2

duma_2_5_15.tar.gz

expat-2.0.1.tar.gz

glibc-2.9.tar.gz

strace-4.5.19.tar.bz2

termcap-1.3.1.tar.gz

ltrace_0.5.3.orig.tar.gz

gmp-4.3.2.tar.bz2

各包下载地址:

linux-3.15.4http://www.kernel.org/pub/linux/kernel/v2.6/
gmp-4.3.2 http://ftp.gnu.org/gnu/gmp/
mpfr-2.4.2 http://ftp.gnu.org/gnu/mpfr/
ppl-0.10.2 http://www.cs.unipr.it/ppl/Download/ftp/releases/0.10.2/
cloog-ppl-0.15.9 http://gcc-uk.internet.bs/infrastructure/
libelf-0.8.13 http://www.mr511.de/software/libelf-0.8.13.tar.gz
binutils-2.19.1 http://ftp.gnu.org/gnu/binutils/
gcc-4.4.3 http://ftp.gnu.org/gnu/gcc/gcc-4.4.3/
uClibc-0.9.30.2 http://www.uclibc.org/downloads/?ref=darwinports.com
dmalloc-5.5.2 http://dmalloc.com/releases/
duma_2_5_15 http://sourceforge.net/projects/duma/files/duma/2.5.15/duma_2_5_15.tar.gz/download
gdb-7.1 http://ftp.gnu.org/gnu/gdb/
ncurses-5.7 http://ftp.gnu.org/pub/gnu/ncurses/
expat-2.0.1 http://sourceforge.net/projects/expat/files/expat/2.0.1/expat-2.0.1.tar.gz/download
ltrace-0.5.3 ftp://ftp.debian.org/debian/pool/main/l/ltrace/
strace-4.5.19 http://sourceforge.net/projects/strace/files/strace/4.5.19/strace-4.5.19.tar.bz2/download

下载地址参考此文:Address

最好可以先下载这些包后,然后存放在相应的目录:/home/xnus/Downloads

最后

ct-ng build

成功后的信息:

[INFO ]  Performing some trivial sanity checks
[DEBUG]  Testing '! ( -n  )'
[DEBUG]  Testing '! ( -n  )'
[DEBUG]  Testing '! ( -n  )'
[DEBUG]  Testing '! ( -n  )'
[DEBUG]  Testing '! ( -n  )'
[DEBUG]  Testing '! ( -n  )'

..

[INFO ]  (elapsed: 50:47.88)

[INFO ]  Finishing installation (may take a few seconds)...


注:可以使用CT_DEBUG_CT_SAVE_STEPS=1 ct-ng build进行build,在build时记录steps,这样就可以以防build错误重新build整个编译工具,

详细见:

参考:expat问题


附上文档下载地址可参考:build.log download

最后:

用PATH添加自己的程序命令时要注意:

1 ) 在root下修改/etc/profile中的PATH路径,修改完之后要用source /etc/profile使之生效!这个命令在root就已经生效了,并且重启不变。

2 ) 在xnus(用户)下修改/etc/profile路径,重启后回复原样,不管你source还是没。正确的办法是,修改~/.bashrc下的PATH路径,

    并source ~/.bashrc,这个命令就在xnus用户下生效,并且重启不变。

3 ) 可用echo $PATH查看路径信息

GOOD LUCK

原创粉丝点击