第 3 章 配置crosstool-ng:ct-ng menuconfig

目录

3.1. 关于crosstool-ng本身的一些背景知识和逻辑
3.1.1. 用ct-ng help查看所拥有的功能
3.1.2. 用ct-ng list-steps查看本身的build过程分成哪几步
3.1.3. 用ct-ng list-samples查看当前已包含哪些默认的示例配置
3.1.4. 用ct-ng show-tuple查看当前配置的是什么交叉编译器
3.1.5. 用ct-ng version查看当前crosstool-ng的版本
3.2. crosstool-ng本身的配置的使用的基本逻辑
3.2.1. 使用已有的crosstool-ng的示例配置
3.2.2. 根据需要去修改你的crosstool-ng的配置
3.3. crosstool-ng的配置参数详解
3.3.1. crosstool-ng工具相关的配置参数
3.3.1.1. 多线程编译以节省时间
3.3.1.2. 从之前错误的那一步恢复继续编译
3.3.1.3. 出错时不立刻退出
3.3.2. crosstool-ng核心配置详解
3.3.2.1. crosstool-ng本身相关的重要参数
3.3.2.1.1. 源码包下载保存路径
3.3.2.1.2. 工作路径
3.3.2.1.3. 目标安装路径
3.3.2.2. 交叉编译相关的核心参数
3.3.2.2.1. crosstool-ng中的配置参数:Architecture level, Emit assembly for CPU, Tune for CPU
3.3.2.2.2. crosstool-ng中的配置参数:MMU
3.3.2.2.3. crosstool-ng中的配置参数:大小端Endianness
3.3.2.2.4. crosstool-ng中的配置参数:浮点处理单元FPU
3.3.2.2.5. crosstool-ng中的配置参数:CFLAGS参数
3.3.2.2.6. crosstool-ng中的配置参数:Linux内核版本
3.3.2.2.7. crosstool-ng中的配置参数:binutils版本
3.3.2.2.8. crosstool-ng中的配置参数:gcc版本
3.3.2.2.9. crosstool-ng中的配置参数:C库的选择
3.3.2.2.10. crosstool-ng中的配置参数:线程模型的选择

相关旧帖:【总结】crosstool-ng使用心得和注意事项

crosstool-ng中关于配置,此处,主要介绍两个大的方面:

  1. crosstool-ng本身的配置的使用的基本逻辑

    关于crosstool-ng的配置本身,其实也有一定的使用逻辑和技巧。

    这些逻辑和技巧,实际上,作者在其主页:

    Using a released version

    中已经解释过了,此处,是加上自己实际折腾的经验的基础上

    再次整理出来,解释清楚:第 3.2 节 “crosstool-ng本身的配置的使用的基本逻辑”

  2. crosstool-ng的配置期间,各种配置参数的含义,如何去配置

    很明显,由于配置参数极多,并且,不同版本中,也可能发生细微的变化,所以不可能面面俱到的解释所有的配置参数的详细的含义。

    但是,又很明显,一些常见的参数,核心的参数,重要的参数,则至始至终,都不会改变的,而且也是必须要搞懂的。

    所以,此处,主要介绍crosstool-ng中,常见的,核心的那些参数。

    而这些常见的,核心的参数,根据其相关性,又主要分两方面:

[提示]使用ct-ng之前的一些说明

在开始使用crosstool-ng这个工具之前,即使用ct-ng之前,有个事情要提醒一下:

最好,或者说,一般常见的做法是:

单独为后续使用crosstool-ng制作交叉编译去,而建立一个单独的文件夹

即,执行后续的ct-ng menuconfigct-ng build等命令,所处在的路径

比如:我之前,除了,解压crosstool所得的文件夹crosstool-ng-1.18.0之外,去建立了一个对应的文件夹:crosstool-ng-1.18.0_build

同时,为了后续crosstool-ng下载对应的各个包,也建立了对应的srcx-tools两个文件夹。

然后,此刻的目录结构就是:

crosstool-ng-1.18.01
crosstool-ng-1.18.0_build2
src3
x-tools4
crosstool-ng-1.18.0.tar.bz25
        

1

crosstool-ng的源码包:5,解压后的文件夹

包含了crosstool-ng的相关源码

2

专门为后期使用crosstool-ng去建立交叉编译器,的编译(build),而专门建立的文件夹

对应的,后续的ct-ng menuconfigct-ng build等命令,都是在此文件夹下执行的。

3

为crosstool-ng中,后续需要下载各种软件的源码包,而准备的,

crosstool-ng中,在开始执行build之后,会去下载对应的源码包,都会存放到这个文件夹下

4

这个文件夹,是,用crosstool-ng所生成的交叉编译器,所在的路径。

对应的配置中,会有,类似于:

(${HOME}/develop/crosstool-ng/x-tools/${CT_TARGET}) Prefix directory

的配置,用来指定生成的交叉编译器,存放在何处。

此时,就是去设置为此处对应的路径即可。

5

很明显,这个就是之前我在折腾crosstool-ng-1.18.0时,去下载的源码包了。

对应的上面的1,就是此源码包解压后的路径。

如此,后续的编译,才显得,相对更加有组织,不至于显得结构太混乱。