arm-linux交叉编译器制作

arm-linux交叉编译器制作

    本文介绍利用crosstool-ng工具制作arm-linu交叉编译器,关于crosstool-ng不在多讲(可以百度),下面以s5pv210处理器为例说明制作过程。

一、安装crosstool-ng

  1、获取crosstool-ng

    从官方网站获取crosstool-ng,http://crosstool-ng.org/,这里我选择crosstool-ng-1.22.0.tar.bz2版本

  2、配置,编译,安装crosstool-ng

    解压crosstool-ng-1.22.0.tar.bz2后进入crosstool-ng目录,依次执行./configure、make、make install即可,在./configure时可能会出现错误,一般都是未安装一些小工具,只要按照提示sudo apt-get install xxx安装缺少的的包即可,make install之后会将ct-ng可执行文件安装在/usr/local/bin/目录下。

  3、测试crosstool-ng是否安装成功

    在任一目录下执行ct-ng -v,若显示crosstool-ng信息就表示安装成功。
    arm-linux交叉编译器制作_第1张图片

二、制作交叉编译器

  首先新建个文件夹,作为编译目录,这里我命名为crosstool,然后进入该目录。

  1、找模板

    从crosstool-ng中的模板中找到和自己目标处理器最接近的一个,使用ct-ng list-samples列出所有模板
    arm-linux交叉编译器制作_第2张图片
可见我的目标处理器s5pv210与arm-cortex_a8-linux-gnueabi最接近,所以就使用它生成配置文件.config,执行ct-ng arm-cortex_a8-linux-gnueabi即可。
    arm-linux交叉编译器制作_第3张图片

  2、配置

    配置一般需要三部分。

    <1>路径配置

       进入Paths and misc options

    arm-linux交叉编译器制作_第4张图片

      然后配置这两项
    arm-linux交叉编译器制作_第5张图片
      编译过程中需要下载一些源码包,Local tarballs directory就是存放这些源码包的目录(一般下载会很慢,可以在编译之前将需要的源码包下载好放在该目录里),若目录不存在一定要建好。
      Prefix directory是存放编译后生成的交叉工具链的路径。

    <2>目标选项

      进入Target options设置如下三项
      arm-linux交叉编译器制作_第6张图片
      第一个Emit assembly for cpu表示cpu,若将其清空则会多出两项,分别是arch和tune,一般都设置上。
      第二个是FPU处理器,VFP或neon等。
      第三个是浮点运算类型,软浮点或硬浮点。

    <3>工具链配置

      进入ToolsChain options
    arm-linux交叉编译器制作_第7张图片
    Tuple's vendor string是供应商字符串,若设置为zyz,则编译后的工具链名字为arm-zyz-linux-gnueabi。
    Tuple's alias是工具链的别名,若设置为arm-linux,则编译后会建立工具链的软连接,命名为arm-linux-xx。

  3、编译工具链

    执行ct-ng build进行编译
    arm-linux交叉编译器制作_第8张图片
    若编译成功
    arm-linux交叉编译器制作_第9张图片
    然后,设置环境变量即可。

  至此,交叉编译器就编译好啦,可以执行arm-linux-gcc -v验证一下。

你可能感兴趣的:(嵌入式linux)