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
- crosstool-ng-1.20.0制作交叉编译工具
- Crosstool-ng制作交叉编译工具链
- Crosstool-ng制作交叉编译工具链
- Crosstool-ng制作交叉编译工具链
- Crosstool-ng制作交叉编译工具链
- Crosstool-ng制作交叉编译工具链
- 利用crosstool-ng-1.14.0制作交叉编译工具链
- crosstool-ng制作交叉编译工具链(powerpc-linux)
- crosstool-ng制作交叉编译工具链(armv6)
- Linux:crosstool-ng制作自己的交叉编译工具
- 使用crosstool-ng制作交叉编译工具链
- cortexA8交叉编译工具制作——crosstool-ng
- 6410 crosstool-ng配置交叉编译工具
- 编译工具链制作神器 - crosstool-ng
- 使用crosstool-ng-1.19.0.tar.bz2制作mips32大端交叉编译工具
- 第一部分:crosstool-ng 制作交叉编译工具链 for s3c2440
- ubuntu 利用crosstool-ng-1.8.1制作交叉编译工具链
- 通过crosstool制作交叉编译工具
- apache-maven-3配置及eclipse中插件配置
- gradle linux下环境变量设置
- 一、Jenkins学习笔记——Jenkins是啥么?
- ruby三日游之后(一)——Ruby对象的一次探索
- lr:lr_convert_string_encoding函数
- crosstool-ng-1.20.0制作交叉编译工具
- 一道sql笔试题
- 流媒体开发之-新浪网NBA排名解析
- C++ 虚基类
- 黑马程序员 类加载器,动态代理
- 社會와 生存法則
- effective C++: 4.设计与声明
- 数据结构c语言实现之字符串
- 象과 自然法則과의 關係