使用crosstool_ng制作交叉链

目前最新版本为1.17.0
wget http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.17.0.tar.bz2
tar xjf crosstool-ng-1.17.0.tar.bz2
cd crosstool-ng-1.17.0
#注意下面这里可能会失败,需要装一些东西,如texinfo、libtool等,具体可以看出错提示
./configure --prefix=/home/qj/crosstool_ng
make
make install
export PATH="${PATH}:/home/qj/crosstool_ng/bin"
cd /home/qj/crosstool_ng
ct-ng help
#设置配置文件,如我这里要使用arm-unknown-linux-gnueabi,则使用如下命令:
ct-ng arm-unknown-linux-gnueabi
注意,不要自己手动拷贝,即不要执行 cp -rf ./lib/ct-ng.1.17.0/samples/arm-unknown-linux-gnueabi/crosstool.config .config,这样拷贝是不行的!至少在1.17.0版本下是不行的,不知道以前怎么样,所以别被网上的一些其它教程误导了。
ct-ng menuconfig #这里面配置项还挺丰富的,前面是直接从模板拷过来的,这里自己可以看看有没有需要修改的
#OK,开始制作吧。
ct-ng build
注意这里的这个build过程中需要下载许gcc/binutils/libc等一堆需要的包。下载下来的包如果存在$HOME/src目录,会被放在$HOME/src目录下去,如果没有会在当前目录下生成一个.build/tarballs目录(实际上当$HOME/src存在时,这个tarballs下面的包都是指向$HOME/src目录下的链接),下载下来的包放在此目录下。
所以为了避免以后重复下载源码,一定要建$HOME/src目录。
这里没有任何屏幕输出提示(只有出错或完成某个任务才会有提示),此时可以通过查看log文件来跟踪具体进度:
新开一个termial,切到/home/qj/crosstool_ng目录下:
tail -f build.log
就行了。
我试了多次自己手动搭建,但不是这里失败就是那里失败,用这个竟然一次成功了,只能说明此工具确实比较好用。
 
有时候,我们apt-get要装一个工具,但apt-get install使用的名字与实际包不一样,这种情况在ubuntu下确实非常烦人,但有个工具apt-file可以解决此问题。默认没有安装。
sudo apt-get install apt-file
装完后
apt-file update更新包信息
之后
apt-file search xxx 
#就可查询到某个文件属于哪个包了
 
全部编译完成后,可以把生成的交叉链加入PATH,一劳永逸。
vi $HOME/.profile
在最后加入如下脚本:
# set arm crosstool path if exists
if [ -d "$HOME/x-tools/arm-unknown-linux-gnueabi/bin" ]; then
    PATH="$HOME/x-tools/arm-unknown-linux-gnueabi/bin:$PATH"
fi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值