Ubuntu10.04安装配置笔记-使用crosstool建立交叉编译器

接下来开始安装交叉编译工具链

在安装交叉编译工具链之前的工作准备:
1,准备好arm-linux-gcc(arm-linux编译器)------我的是arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2.
2,ncurses图形互动功能的动态库。如果没有它,在执行“make menuconfig”命令配置程序时会出错。  ----我的是ncurses.tar.gz,
      ----下载地址http://download.chinaunix.net/download/0008000/7242.shtml
3,crosstool工具链-------我的是crosstool-0.43.tar.gz  下载地址是:http://kergel.com/crosstool/
4,Ubuntu默认所安装的binutils版本为binutils-2.20, 当binutils太新的时候,crosstool只好将它当成太老的
   版本,报告说too old; as ld. 于是我们需要重新编译安装一个老版本的binutils, 2.19或者2.18都可以
   被crosstool所识别,这里拿binutils-2.18举例。但还有一个问题,Ubuntu10.04默认安装的gcc版本是gcc-
   4.4.3,跟binutils-2.20一样,太高版本的gcc对语法要求更为严格,这样会导致binutils-2.18无法轻松的编译
   通过,于是我们需要编译安装一个老版本的gcc, 4.1的版本可以编译成功binutils-2.18。 所以我们要准备的工具
   是: binutils-2.18和gcc-4.1。
现在就根据上面的准备工作步骤一步一步的进行操作:
1,解压你的arm-linux编译器:tar xvf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2  ,在你的系统中添加这个环境变
   量,我的是这样的加的 打开用户目录下的 .profile ,  vi ~/.profile   ---在它的最后面添加这样的一句话:
   export PATH=$PATH:/你安装的目录/bin;如: export PATH=$PATH :/work/tool/gcc-3.4.5-glibc-2.3.6/bin
     2, 解压 ncurses.tar.gz,命令:tar xzf ncurses.tar.gz,
   cdncurses-5.6,
   ./configure --with-shared --prefix=/usr
   make&&make install
3,解压:tar xzf crosstool-0.43.tar.gz
  进入解压目录:cd crosstool-0.43
  执行:sudo ./demo-arm-softfloat.sh
  在执行./demo-arm-softfloat.sh之前要设置一下的东西是:
<1>修改demo-arm-softfloat.sh,修改内容如下:
   TARBALLS_DIR=/work/tool/create_crosstools/src_gcc_glibc
                   RESULT_TOP=/work/tool
<2>修改arm-softfloat.dat,修改如下:
   将:TARGET=arm-softfloat-linux-gnu 改为:TARGET=arm-linux
   这表示编译出来的工具样式为arm-linux-gcc、arm-linux-ld等,这是通用的名字
<3>修改all.sh,其目的是将编译的结果放在/work/tool/gcc-3.4.5-glibc-2.3.6目录下
    将:PREFIX=${PREFIX-$RESULT_TOP/$TOOLCOMBO/$TARGET}
    修改为:PREFIX=${PREFIX-$RESULT_TOP/$TOOLCOMBO}
4,安装gcc-4.1:sudo apt-get install gcc-4.1 
     安装完成后运行如下命令

    $ cd /usr/bin
            $ sudo rm gcc
            $ sudo ln -sf gcc-4.1 gcc
            $ gcc -v

            得到如下显示:

    Using built-in specs.
    Target: i486-linux-gnu
    Configured with: ../src/configure -v –enable-languages=c,c++ –prefix=/usr –enable-shared –with-

    system-zlib –libexecdir=/usr/lib –without-included-gettext –enable-threads=posix –enable-nls –

    with-gxx-include-dir=/usr/include/c++/4.1.3 –program-suffix=-4.1 –enable-__cxa_atexit –enable-

    clocale=gnu –enable-libstdcxx-debug –with-tune=generic –enable-checking=release i486-linux-gnu

    Thread model: posix

    gcc version 4.1.3 20080704 (prerelease) (Ubuntu 4.1.2-27ubuntu1)

    表明原先指向gcc-4.4的的符号链接已经被重新指向新安装的gcc-4.1,系统中默认的gcc版本为4.1。

5.安装binutils-2.18

   下载binutils-2.18, 将其解压缩后,进入binutils顶层目录,运行

  $ ./configure –prefix=/home/rookiesean/temp/binutils –disable-nls
          $ make all
  $ make install

  其中–prefix=/home/rookiesean/temp/binutils表示生成可执行文件的存放位置,可自定义。

  编译成功后在/home/rookiesean/temp/binutils/bin/中就生成了ld as程序的可执行文件, 到/usr/bin目录下面将系统

  默认的ld和as替换成2.18版本的:

 $ cd /usr/bin
 $ sudo rm as ld
 $ sudo ln -sf /home/rookiesean/temp/binutils/bin/ld ld
 $ sudo ln -sf /home/rookiesean/temp/binutils/bin/as as
 $ ld -v; as -v

 得到如下显示:

 GNU ld (GNU Binutils) 2.18
 GNU assembler version 2.18 (i686-pc-linux-gnu) using BFD version (GNU Binutils) 2.18

6,在这些做完之后还是会有一个错误:version.c:40: error: syntax error before string constant

   原因:老版本的glibc在/bin/sh为dash的时候会出现这个问题,一种解决方法是把/bin/sh重定向为bash,在创建完交

         叉编译器后可以将/bin/sh重新改回dash,运行如下面命令修改/bin/sh:

    解决办法是:cd /bin

sudo mv /bin/sh sh.old

sh -version

显示的结果是:

GNU bash, version 4.1.5(1)-release (i486-pc-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

说明成功。

7.进入crosstool-0.43目录:

  执行命令:./demo-arm-softfloat.sh进行编译,时间比较长,耐等。。。。。。

在此还是要推荐一下我网站:www.mifango.com 米返购物网   在这个网站上购物你完全不用担心货的问题,因为你是通过我这个网站上进入到像京东,淘宝,天猫,苏宁易购等网站上购物的,我这只不过是提供有一个链接,有人会问,我直接进入像淘宝,京东等这样的官网不就可以了吗,其实则不然,从我的网站上进入一些大的商城你能拿到一定的返利的。

比如在京东上买了一件衣服可能需要200块钱,但是从我的网站上进入的话,你可能只需要190块钱就可以搞定的哟。


 








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值