×

嵌入式交叉编译环境的搭建解析

消耗积分:1 | 格式:rar | 大小:0.3 MB | 2017-10-18

分享资料个

5.1.1 嵌入式交叉编译环境的搭建
  交叉编译的概念在第4章中已经详细讲述过,搭建交叉编译环境是嵌入式开发的第一步,也是必备的一步。搭建交叉编译环境的方法很多,不同的体系结构、不同的操作内容甚至是不同版本的内核,都会用到不同的交叉编译器,而且,有些交叉编译器经常会有部分的bug,这都会导致最后的代码无法正常地运行。因此,选择合适的交叉编译器对于嵌入式开发是非常重要的。
  交叉编译器完整的安装一般涉及多个软件的安装(读者可以从ftp://gcc.gnu.org/pub/下载),包括binutils、gcc、glibc等软件。其中,binutils主要用于生成一些辅助工具,如objdump、as、ld等;gcc是用来生成交叉编译器的,主要生成arm-linux-gcc交叉编译工具(应该说,生成此工具后已经搭建起了交叉编译环境,可以编译Linux内核了,但由于没有提供标准用户函数库,用户程序还无法编译);glibc主要是提供用户程序所使用的一些基本的函数库。这样,交叉编译环境就完全搭建起来了。
  上面所述的搭建交叉编译环境比较复杂,很多步骤都涉及对硬件平台的选择。因此,现在嵌入式平台提供厂商一般会提供在该平台上测试通过的交叉编译器,而且很多公司把以上安装步骤全部写入脚本文件或者以发行包的形式提供,这样就大大方便了用户的使用。如优龙的FS2410开发光盘里就附带了2.95.3和3.3.2两个版本的交叉编译器,其中前一个版本是用于编译Linux 2.4内核的,而后一个版本是用于编译Linux 2.6版本内核的。由于这是厂商测试通过的编译器,因此可靠性会比较高,而且与开发板能够很好地吻合。所以推荐初学者直接使用厂商提供的编译器。当然,由于时间滞后的原因,这个编译器往往不是最新的版本,若需要更新时希望读者另外查找相关资料学习。本书就以优龙自带的cross-3.3.2为例进行讲解(具体的名称不同厂商可能会有区别)。
  安装交叉编译器的具体步骤在第2章的实验二中已经进行了详细地讲解了,在此仅回忆关键步骤,对于细节请读者参见第2章的实验二。
  在/usr/local/arm下解压cross-3.3.2.bar.bz2。
  [root@localhost arm]# tar –jxvf cross-3.3.2.bar.bz2
  [root@localhost arm]# ls
  3.3.2 cross-3.3.2.tar.bz2
  [root@localhost arm]# cd 。/3.3.2
  [root@localhost arm]# ls
  arm-linux bin etc include info lib libexec man sbin share VERSIONS
  [root@localhost bin]# which arm-linux*
  /usr/local/arm/3.3.2/bin/arm-linux-addr2line
  /usr/local/arm/3.3.2/bin/arm-linux-ar
  /usr/local/arm/3.3.2/bin/arm-linux-as
  /usr/local/arm/3.3.2/bin/arm-linux-c++
  /usr/local/arm/3.3.2/bin/arm-linux-c++filt
  /usr/local/arm/3.3.2/bin/arm-linux-cpp
  /usr/local/arm/3.3.2/bin/arm-linux-g++
  /usr/local/arm/3.3.2/bin/arm-linux-gcc
  /usr/local/arm/3.3.2/bin/arm-linux-gcc-3.3.2
  /usr/local/arm/3.3.2/bin/arm-linux-gccbug
  /usr/local/arm/3.3.2/bin/arm-linux-gcov
  /usr/local/arm/3.3.2/bin/arm-linux-ld
  /usr/local/arm/3.3.2/bin/arm-linux-nm
  /usr/local/arm/3.3.2/bin/arm-linux-objcopy
  /usr/local/arm/3.3.2/bin/arm-linux-objdump
  /usr/local/arm/3.3.2/bin/arm-linux-ranlib
  /usr/local/arm/3.3.2/bin/arm-linux-readelf
  /usr/local/arm/3.3.2/bin/arm-linux-size
  /usr/local/arm/3.3.2/bin/arm-linux-strings
  /usr/local/arm/3.3.2/bin/arm-linux-strip

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !