crosstool-ng-1.14.0制作交叉编译工具链

 交叉编译器可以用现成的,比如CodeSourcery制作的交叉编译器,也可以自己制作,一般是用kernel+gcc+glibc+binutils的源码包来编译安装,后来由于这个太麻烦于是就有类似crosstool这样的自动化配置工具。

       现在之所以用crosstool-ng是因为crosstool-ng是新的用来建立交叉工具链的工具,它是crosstool的替换者。 crosstool的gcc版本只能到4.1.1,无法编译版本高于2.6.29的linux内核。而crosstool-ng一直保持着更新,现在最新 能够建立 gcc 4.3.2版本,可用来编译最新内核。


编译环境:ubuntu11.04  +crosstool-ng-1.14.0

目标平台:armv4t  arm9tdmi s3c2440

一   配置ubuntu编译环境:

 sudo apt-get install sed bash dpkg-dev bison flex texinfo automake m4 libtool websvn tar gzip bzip2 lzma patch gcj cvs cvsd gawk -y

二   安装crosstool-ng-1.14.0

1 首先从官网上下载 crossTool-ng 的源码包。

2 建立一个特定的安装目录

   mkdir  ~/software

3 吧下载下来的crosstool-ng 源码包解压到 software 目录下

      tar -zxvf  crosstool-ng-1.14.0.tar.gz -C/home/whw/software/

4 建立编译交叉编译器的工作目录 crosstool-ng-1.14.0-build和 交叉编译器的安装目录 crosstool-ng-1.14.0-install

  cd ~/software

  mkdir crosstool-ng-1.14.0-build

 mkdir crosstool-ng-1.14.0-install

5  cd crosstool-ng-1.14.0

    path -p1<    //给安装包打补丁  如果有的话。

  ./configure --prefix=/home/whw/software/crosstool-ng-1.14.0-install  //配置crosstool-ng的安装路径。

  make

  sudo make install  //这一步的时,可能会出现下面的提示信息:For auto-completion, do not forget to install 'ct-ng.comp' into
your bash completion directory (usually /etc/bash_completion.d)   不用理会 我当时就是在这上面浪费了好多时间。

  echo "PATH=$PATH:/home/whw/softawre/crosstool-ng-1.14.0-install/bin">>~/.bashrc   //为后面调用ct-ng命令增加环境变量

   source ~/.bashrc

   ct-ng help  // 因为权限的问题 可能会提示 找不到ct-ng help 命令 这时候 只需要 改变一下ct-ng的权限 chmod a+rx ct-ng

   这时会有打印出一堆信息 说明已经安装成功。

三  配置自己的交叉编译链

  cd ~/software/crosstool-ng-1.14.0-build

   cp ../crosstool-ng-1.14.0/samples/arm-unknown-linux-gnueabi /* ./    //拷贝默认的配置文件到编译的工作目录。

     mv   crosstool.config .config

cd  ../crosstool-ng-1.14.0-install/bin/

   ct-ng menuconfig    //进入 menuconfig ,开始配置。

Paths and misc options  --->
    ......
    (/homewhw/software/crosstool/src)   Local tarballs directory  # 指定制作编译器所需要的源码包的下载存放,可以修改成任意位置,请注意权限。现在指定到~/src下。
    ......
    (/home/whw/software/x-tools/${CT_TARGET}) Prefix directory     # 制作好的编译器所放置的目录    //建议保留${CT_TARGET},我也不知道原因 通过实际操作,如果不加的话,x-tools目录下的文件会很乱,导致后面添加交叉编译器环境变量的时候,会加不进去。很郁闷 。

  *** Downloading ***                                               
         [ ] Forbid downloads                                                  
         [*]   Force downloads               
                                                                 //  如果网络还可以的话 建议此处这样设置,因为如果事先下载好源码包的话 会因为版本 格式不匹配 而编译失败。亲身经历过的。

arget options  --->
    Target Architecture (arm)  ---> # 注意看这项是不是ARM平台
    ......
    Floating point: (software)  ---> # 对于很多ARM架构CPU来说是不支持硬浮点运算的,所以选择软件方式有更好的兼容性
    ......

    [*] Use EABI                            # 是否实用EABI方式,对某些指令采用异常的方式来处理(如除法指令),建议选中
Toolchain options  --->
     .....
     (XXX) Tuple's vendor string  # 这里可以修改成你自己的个性化名称,最后会生成形如arm-yourname-linux-gnueabi这样的编译器前缀


四   自动下载和编译 速度要根据网络和机器的配置而定, 我后来是下载好源码包的  编译了30ms 多  我的配置是 CPU i5 2430M 6GB 内存。

   开始编译:  ct-ng build

五测试交叉编译器

  cd ~/software/x-tools/arm-unknown-linux-gnueadi/bin/

  ./arm-whw-linux-gnueadi-gcc -v

  这时 会打印出一堆信息 说明安装成功。


六   增加环境变量

export PATH=$PATH:/home/whw/x-tools/arm-whw-linux-gnueabi/bin
source ~./bashrc
 
工作结束。

参考链接: 1  http://www.cnblogs.com/aka-blog/archive/2011/10/22/cross-ng.html
          2 http://blog.chinaunix.net/uid-18921523-id-240368.html

 
————————————————
版权声明:本文为CSDN博主「风雨无组」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/whw05567013856152985/article/details/7334754

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值