从之前介绍的第 3.1.3 节 “用ct-ng list-samples查看当前已包含哪些默认的示例配置”,我们可以看出
对于常见的架构,比如arm,mips,powerpc等等,都有了很多的,已经帮我验证过,可以正常编译的示例配置了
所以,我们接下来,主要就是:
搞懂自己借用哪个配置,然后调用默认配置,然后再确认一下配置,根据自己的情况去改一改,就差不多,就配置好了。
下面介绍,如何去配置crosstool-ng的主要的两种情况:
下面就来详细阐述其含义:
很多时候,我们用crosstool-ng去编译我们要的交叉编译器的时候,所针对的CPU,目标运行环境,想要用的C库等等,
很可能,和之前上面看到的某个配置,是一样的。
此时,我们所要做的事情,其实就是直接拿来用即可。
比如,我们想要针对cortex-a8这款CPU,去编译一个交叉编译器,那么你就会发现,其实默认已有此配置了:
arm-cortex_a8-linux-gnueabi
在使用之前,也是可以先去看看,该配置的主要参数是哪些:
CLi@PC-CLI-1 ~/develop/crosstool-ng/crosstool-ng-1.18.0_build $ ct-ng show-arm-cortex_a8-linux-gnueabi [G..] arm-cortex_a8-linux-gnueabi OS : linux-3.7.3 Companion libs : gmp-4.3.2 mpfr-2.4.2 ppl-0.10.2 cloog-ppl-0.15.9 libelf-0.8.13 binutils : binutils-2.20.1a C compiler : gcc-4.4.6 (C,C++) C library : glibc-2.9 (threads: nptl) Tools : dmalloc-5.5.2 duma-2_5_15 gdb-6.8a ltrace-0.5.3 strace-4.5.19
然后,你就可以直接去调用此配置了:
ct-ng arm-cortex_a8-linux-gnueabi
实际输出,是类似于这样的:
CLi@PC-CLI-1 ~/develop/crosstool-ng/crosstool-ng-1.18.0_build $ ct-ng arm-cortex_a8-linux-gnueabi LN config MKDIR config.gen IN config.gen/arch.in IN config.gen/kernel.in IN config.gen/cc.in IN config.gen/binutils.in IN config.gen/libc.in IN config.gen/debug.in CONF config/config.in # # configuration saved # *********************************************************** Initially reported by: Yann E. MORIN URL: http://ymorin.is-a-geek.org/ *********************************************************** Now configured for "arm-cortex_a8-linux-gnueabi"
一些实际折腾的过程,可参考:
【记录】重试使用最新版本1.18.0的crosstool-ng去配置和编译xscale的交叉编译器
接下来,你就可以去进入配置:
ct-ng menuconfig
去确认一下,是否是完全符合你的要求。
如果有什么个别的配置不满意,再去修改为你自己想要的即可。
很多时候,已经的哪些示例配置,未必完全符合你的需要,这时候,你就只能是:
找个和你的情况最接近的一个示例配置,然后再去基于此配置,去修改成你所要的。
比如,我之前折腾,为TQ2440的S3C2440的CPU,其是arm920t的核
去配置crosstool-ng的时候,就发现,默认的配置中,没有完全合适的。
然后就一点点去调查,而最后搞清楚了,在已有的,arm相关的配置中,davinci,是相对来说,比较接近此处的arm920t的了。
所以,就去调用davinci的默认配置:
ct-ng arm-davinci-linux-gnueabi
然后再按照自己的需求,进入:
ct-ng menuconfig
后,去根据自己的需要,再去确认配置,和修改配置,为自己所需要的。
详细过程参见: