×
单片机 > 单片机程序设计 > 详情

在CentOS下用cross-ng建立arm-linux交叉编译环境

发布时间:2020-08-28 发布时间:
|
网上很多都是在Ubuntu下用cross-ng建立arm-linux交叉编译工具的文章,而CentOS下却很难寻觅。在这里记录了自己的建造过程,以供广大网友参阅。

一、配置环境

1、操作系统:CentOS5.5

2、源代码包:crosstool-ng-1.9.0.tar.bz2

二、安装crosstool-ng依赖软件包

libncurses5-dev

bison

flex

texinfo

libtool

patch

lzma

cvs

gawk

glibc-static

gcc-java

gcc-c++

#在CentOS Shell下,使用命令 $yum install xxx 依次安装。

cvsd    #手动安装

temcap    #手动安装

  • tar zxvf termcap-1.3.1.tar.gz
  • cd termcap-1.3.1
  • ./configure --prefix=/usr
  • make
  • make install

autoconf    #手动安装

#autoconf安装成功之后,再来安装automake

  • tar -jxvf autoconf-2.66.tar.bz2
  • cd autoconf-2.66
  • ./configure
  • make
  • make install

automake   #手动安装

 #注意:CentOS5.5下的automake版本太低,需要 1.10或以上版本

  • tar -jxvf automake-1.10.2.tar.bz2
  • cd automake-1.10.2
  • ./configure
  • make
  • mak install

三、配置、编译和安装

  • mkdir ~/crosstool
  • cd  ~/crosstool
  • mkdir src
  • binutils-2.19.1.tar.bz2
    glibc-2.9.tar.gz         
    dmalloc-5.5.2.tgz       
    glibc-ports-2.9.tar.bz2  
    mpfr-2.4.2.tar.bz2
    duma_2_5_15.tar.gz      
    gmp-4.3.3.tar.bz2        
    ncurses-5.7.tar.gz
    ecj-latest.jar      
    libelf-0.8.13.tar.gz     
    sstrip.c
    gcc-4.3.2.tar.bz2       
    linux-2.6.33.7.tar.bz2  
    strace-4.5.19.tar.bz2
    gdb-6.8.tar.bz2        
    ltrace_0.5.3.orig.tar.gz
    cp xxx ./src         #下载并拷贝以上代码包到~/crosstool/src
  • cp ~/crosstool-ng-1.9.0.tar.bz2 ./ 
  • mkdir crosstool-build                      #编译新交叉编译器的工作目录
  • mkdir crosstool-install                     #安装目录
  • tar xjvf crosstool-ng-1.9.0.tar.bz2   #解压文件
  • cd crosstool-ng-1.9.0           
  • patch -p1                   #给crosstool-ng打补丁(如果有)
  • ./configure --prefix=~/crosstool/crosstool-install     #配置crosstool-ng
  • make                                                                      #编译crosstool-ng
  • make install                                                            #安装crosstool-ng
  • echo "PATH=$PATH:~/crosstool/tools/bin" >> ~/.bashrc     # 为后面调用ct-ng命令增加环境变量
  • $ source ~/.bashrc

四、配置交叉编译工具

  • cd ~/crosstool/crosstool-build/
  • cp ../crosstool-ng-1.9.0/samples/arm-unknown-linux-gnueabi /* ./  #拷贝默认配置文件到工作目录
  • mv crosstool.config  .config         #修改文件名
  • ../crosstool-install/bin/ct-ng menuconfig

此时会出现crosstool-ng的配置窗口,针对armv4t体系架构,开始对其进行修改配置:

1、已下载好的源码包路径和交叉编译器的安装路径。

Paths and misc options --->

   (/home/centos/crosstool/src) Local tarballs directory      #保存源代码包路径

   (/home/centos/crosstool/tools) Prefix directory                #交叉编译器的安装路径

2、修改交叉编译器针对的构架。
Target options  --->
  *** Target optimisations ***
           (armv4t) Architecture level
           (arm9tdmi) Emit assembly for CPU   
           (arm920t) Tune for CPU

3、增加编译时的并行进程数,以增加运行效率,加快编译。
Paths and misc options  --->
   *** Build behavior ***
   (4) Number of parallel jobs 

#数值不宜过大,应该为CPU数量的两倍。由于我的CPU是双核的,所以我填了4

4、关闭java编译器,避免gcj出错
C compiler  --->
      *** Additional supported languages: ***
      [N] Java 

5、一些个性化的设置
Toolchain options  --->
       *** Tuple completion and aliasing *** 
       (centos) Tuple's vendor string      #产生的编译器前缀:arm-centos-linux-gnueabi-
 #这个前缀太长,crosstool-ng可以在配置的时候设置别名
Toolchain options  --->
       *** Tuple completion and aliasing *** 
       (arm-linux) Tuple's alias  
 #这里设置别名为arm-linux,这样以后通过arm-linux-gcc就可以调用arm-centos-linux-gnueabi-gcc了

C compiler  --->
       (crosstool-NG-${CT_VERSION}-centos) gcc ID string
 #接下来保存就可以了

五、为加快速度,根据配置自行下载相应的软件包

注意:虽然crosstool-ng自动下载相应软件包,但是速度比较慢。我们不防在执行ct-ng build命令之前,把相应的软件包预先下载好,拷贝到配置时指定的文件夹,这里是~/crosstool/src。查看crosstool-build目录下“.config”文件就可知道需要哪些软件包及其版本
六、编译工具链

../crosstool-install/bin/ct-ng build 

#接下来,就是漫长的等待。crosstool-ng会自动下载相应的包,内核文件,然后解压,配置,编译,链接

七、编译好后的交叉编译器
编译器位于:${你配置时确定的路径}/arm-centos-linux-gnueabi/bin
库文件位于:${你配置时确定的路径}/arm-centos-linux-gnueabi/arm-centos-linux-gnueabi/lib

八、测试一下编译是否成功:
$ arm-centos-linux-gnueabi-gcc -v


关键字:CentOS  cross-ng  交叉编译环境 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
单片机的抗干扰措施有哪些