产品简介
6SE6430-2AD27-5CA0
6SE6430-2AD27-5CA0
产品价格:
上架日期:2022-01-04 17:13:07
产地:6SE6430-2AD27-5CA0
发货地:6SE6430-2AD27-5CA0
供应数量:不限
最少起订:1个
浏览量:89
资料下载:暂无资料下载
其他下载:暂无相关下载
详细说明

    6SE6430-2AD27-5CA0 

    6SE6430-2AD27-5CA0 自己制作交叉编译器


     

    早期(2009年以前)我们在做嵌入式系统开发时,第一件事就是自己制作交叉编译器。当时做交叉编译器 需要自己下载gcc、glibc、binutils等相关工具的源码,然后一个一个源码编译安装。制作交叉编译器的 过程中最痛苦的莫过于各个软件之间的版本依赖关系,如gcc 4.6.2 依赖 glibc 2.13,如果你选定 gcc 4.7 则可能编译制作失败,然后再尝试一个新的版本重新编译,直至找到一个合适的版本为止。


     

    后来为了方便交叉编译器的制作,有很多组织或个人开始编写这些制作交叉编译器的脚本或框架,并测 试解决这些软件版本之间的依赖关系。当时最知名的莫过于基于 glibc 的 crosstool 和 基于 uclibc 

    buildroot 了。在开始讲解如何制作交叉编译器之前,我们首先来了解一下 C运行库


     

    1.嵌入式C运行库


     

    1.1glibc库

    glibc是gnu发布的libc库,也即c运行库。glibc是linux 系统中层的api(应用程序开发接口),几乎其它任何的运行库都会倚赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了 许多其它一些必要功能服务的实现,主要的如下:

    b,字符串处理

    signal,信号处理

    dlfcn,管理共享库的动态加载

    direct,文件目录操作

    elf,共享库的动态加载器,也即interpreter

    iconv,不同字符集的编码转换

    inet,socket接口的实现

    intl,国际化,也即gettext的实现

    io

    linuxthreads

    locale,本地化

    login,虚拟终端设备的管理,及系统的安全访问

    malloc,动态内存的分配与管理

    nis

    stdlib,其它基本功能


     

    gcc 是编译器,基本上 Linux 下所有的程序(包括内核)都是 gcc 编译的,libc 当然也是。gcc 和 libc 是互相依赖的两个软件,它们合作的方式类似 Linux 系统的 "自举"。先在一个可以运行的带有老 libc 和

    gcc 的系统上,用老 gcc 编译出一个新版本的 gcc + 老 libc,再用这个新 gcc 编译出一个新 gcc + 新

    libc,再用这套新的组合编译整个新系统。


     

    1.2 uClibc库

    PC上常用的标准库glibc是一个非常宠大而完整的库,但早期对于嵌入式系统来说,由于Flash和RAM的 存储空间有线,其体积显得过于大了一些。uClibc的出现就是为了解决这个问题,uClibc尽可能的兼容

    Glibc,大多数应用程序可以在很小或完全不修改的情况下就可能使用uClibc替代glibc。通过uClibc来代 替Glibc,可以在不改变应用程序功能的前提下,大大减少发布文件的大小,无论应用程序以静态链接来 编译,还是以动态链接形式编译。


    6SE6430-2AD27-5CA0

在线询盘/留言
  • 免责声明:以上所展示的信息由企业自行提供,内容的真实性、准确性和合法性由发布企业负责,本网对此不承担任何保证责任。我们原则 上建议您选择本网高级会员或VIP会员。
    企业信息
    厦门光沃自动化设备有限公司
    会员级别:试用会员
    ------------ 联系方式 ------------
    联系人:吴(先生)
    联系电话:0592-5709821
    联系手机:18030229050
    传真号码:0592-5917519
    企业邮箱:1878187406@qq.com
    网址:
    邮编:361000
    推荐供应
    0571-87774297