ubuntu 利用crosstool-ng-1.8.1制作交叉编译工具链

我的编译主要是参考了:
http://blog.chinaunix.net/u3/104206/showart_2325147.html

http://blog.chinaunix.net/u1/34474/showart_2198589.html
两篇文章。
我的开发板是mini2440.
编译的整体步骤:首先安装crosstool-ng,然后利用crosstool-ng编译出交叉工具链。
============================
1.下载最新ccrosstool-ng-1.8.1.tar.bz2, 有两个补丁
000-scripts_log_do_not_interpret_log_string_as_printf_format.patch
001-binutils_binutils_remove_faulty_patch.patch
不知为什么打补丁要很长时间,所以我取消了打补丁。
2.安装一些必要的包:

sudo apt-get install libncurses5-dev bison flex texinfo automake libtool patch gcj cvs cvsd gawk

configure make make install安装 termcap-1.3.1.tar.gz ,因为sudo apt 找不到这个包,可能是太古老了。
3.建立制作工具链的工作目录:

mkdir ${HOME}/crosstool-ng  #所有工作都在这个目录里做,并把crosstool-ng-1.8.1.tar.bz2复制到这个目录里,解压缩为crosstool-ng-1.8.1

cd ${HOME}/crosstool-ng

mkdir crosstool-ng-1.8.1_build  crosstool-ng-1.8.1_install #第一个是编译交叉工具链时的工作目录 ,第二个是crosstool-ng-1.8.1的安装目录

cd  ${HOME}/crosstool-ng/crosstool-ng-1.8.1

./configure --prefix=${HOME}/crosstool-ng/crosstool-ng-1.8.1_install

make

make install

#注意:以前我把crosstool-ng-1.8.1安装在/usr/local下面了,安装时必然要使用sudo,在后面编译工具链时,出现了crosstool-ng chmod -R u+w: changing permissions of 权限的错误,后来改到${HOME}下安装crosstool-ng,这个问题就没了。


4.
配置编译的交叉编译工具链 :
   接下来就是配置你要编译的交叉编译工具链了,在crosstool-ng已很多已经做好的默认配置(位于crosstool-ng- X.Y.Z/samples目录下),你只要针对其进行修改就好了。对于编译器组件部分的版本最好不要修改,因为那个配搭应该是经过测试后的最高本版了, 但内核版本可以修改。

cd ${HOME}/crosstool-ng/crosstool-ng-1.8.1_build  
cp ../crosstool-ng-1.8.1/samples/arm-unknown-linux-gnueabi/* ./

mv crosstool.config  .config

../crosstool-ng-1.8.1_install/bin/ct-ng menuconfig

进入menuconfig  #开始修改配置,完全按照前面的两篇blog做的,自己有待进一步研究
=========================
5.开始编译:

../crosstool-ng-1.8.1_install/bin/ct-ng build

注意:可以用build.4这个编译速度要加快不少,我分别在两台同样配置的机器编译,都是dellPC是2006年初的机器,老旧,用build花了190分钟,用build.4花了120分钟。另外,编译时是需要g++的,并且版本和gcc的版本要一致,我的pc的g++和gcc的版本就不一样,因为平时需要用低版本的g++-4.1编译公司的server代码,后来把我的g++-4.1卸载了,然后安装了g++-4.3就可以编译通过了。另外,一定要细读品味x-tools/arm-unknown-linux-gnueabi/build.log所指出的错误原因和解决办法。
6. 编译好的交叉编译器的bin和lib:
bin:crosstool-ng/x-tools/arm-unknown-linux-gnueabi/bin
lib:crosstool-ng/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi/lib
7.增加环境变量:
可以修改~/.bashrc或者建立到目录/usr/local/bin或者/usr/bin的软连接,目前情况建环境变量更简洁吧。
建软连接这里不太合适,
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu是一种基于Linux的操作系统,而crosstool-ng是一个工具生成工具。这个工具允许用户在Ubuntu操作系统上生成交叉编译工具,从而能够在一个平台上为不同的目标体系结构编译和构建软件。 使用crosstool-ng可以为各种不同的目标体系结构生成交叉编译工具,包括ARM、MIPS、PowerPC等。生成的工具包含了一个交叉编译器、库和头文件,可以用来编译和构建适用于特定目标体系结构的应用程序。 Ubuntu的用户可以通过安装crosstool-ng并按照相应的文档和指南进行设置和配置。首先,用户需要在Ubuntu上安装和配置必要的开发工具和依赖项,然后从crosstool-ng的官方网站下载最新的源代码并进行编译和安装。 安装完成后,用户需要使用crosstool-ng提供的配置文件进行配置和设置。用户可以选择合适的目标体系结构,并选择所需的版本和选项。之后,用户可以运行crosstool-ng来生成交叉编译工具。 一旦工具生成完成,用户就可以使用它来编译和构建适用于特定目标体系结构的应用程序。用户可以在Ubuntu上开发应用程序,并将其交叉编译为可在其他平台上运行的可执行文件。 总之,Ubuntu和crosstool-ng的结合为用户提供了一个方便而强大的工具,使他们能够在Ubuntu上生成适用于不同目标体系结构的交叉编译工具,并开发多平台的应用程序。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值