1.5. crosstool-ng的使用的基本逻辑

在详细介绍,然后下载和安装crosstool-ng,如何配置,如何编译crosstool-ng之前,需要先解释一下,crosstool-ng,这个工具,的使用的基本逻辑。

其实,这部分的内容,作者在主页:

crosstool-NG: Download and usage

中,已经解释过了,只是相对比较言简意赅,不是足够详细。

此处,就来详细的解释一下:

在使用crosstool-ng之前,实际上,要明白,有两个概念,不要混淆了:

  1. 下载,编译,安装crosstool-ng工具本身(到当前的Linux,Cygwin等系统中,供后续使用)

    crosstool-ng,作为一个工具,尤其是在Linux领域里

    很明显,也有对应的源码包,即:也需要,通过下载对应的源码,去编译源码,然后再安装到当前的系统中

    其整体的逻辑,和下载,编译,安装,别的,Linux下的软件包,没有啥特殊区别。

    [提示] Linux下安装第三方工具的基本逻辑

    Linux的世界中,使用某个工具软件,和Windows下,不太一样

    更多的时候,是自己从源码中编译并安装

    所以,需要自己找到自己要的源码包,即下载,然后去配置,再去编译和安装。

    即:下载,配置,编译,安装

    对于这方面的逻辑,不是很熟悉的话,可参考我总结的:

    软件开发基础之linux下安装某个软件的逻辑和过程

  2. 用crosstool-ng这个工具(即ct-ng)去制作(配置和编译)所需要的交叉编译器

    在安装了crosstool-ng这个工具后,就可以去使用ct-ng了。

    然后才是去,配置,和编译,以便制作出对应的相应的交叉编译器

    即,用crosstool-ng这个,制作交叉编译器的工具,去制作交叉编译器,的基本步骤,包括:

    1. 配置

      即,为了你要制作的交叉编译器,去配置各种参数

      比如CPU是arm还是mips还是其他,运行目标平台是Linux还是bare metal,所用的C库是elibc,还是glibc,还是uclibc等,等等的配置。

      选用合适的配置,一般的做法,主要有两种:

      • 直接利用已有的配置

        crosstool-ng,本身已经支持很多种体系结构的配置

        很多时候,你可以直接使用已有的配置,而基本无需更改了。

        对应的命令一般是:

        ct-ng some_default_config
      • 利用已有的,最接近你的需求的配置,再手动去改改

        有时候,你所需要编译的交叉编译器,和已有的各种配置中,都没有合适的,没有满足你的需求的

        那么就要你,去找一个,和你的需求最接近的一个配置

        利用该配置,然后再去修改一些参数,达到最终你想要的效果

        对应的命令一般是:

        ct-ng some_default_config
        ct-ng menuconfig
                                    
    2. 编译

      等所有的配置都完毕后,就可以去编译,生成你所需要的交叉编译器了。

      对应的命令一般是:

      ct-ng build

    当然,在配置和编译之前和过程中,你需要搞懂很多东西,比如:

    你自己的处理器是什么,所要使用的目标系统是什么,要用什么C库等

    并且还要,根据这些已有信息,搞清楚如何去配置crosstool-ng等等。

    这也就是,此文接下来要解释的内容。