Buildroot 工具链 - 只需要构建一次

Posted

技术标签:

【中文标题】Buildroot 工具链 - 只需要构建一次【英文标题】:Buildroot toolchain - need to build only once 【发布时间】:2011-12-11 13:28:32 【问题描述】:

我有多个平台共享同一个 buildroot。它们在 buildroot 包中有所不同。在 buildroot 中有没有一种方法可以配置为只构建一次工具链,然后在它上面只构建包和目标。

不做 make clean 的示例描述(所以工具链是完整的):

1) 一旦构建了 buildroot,平台 A 会更新目标的 rootfs /etc 中的一些 conf 文件(我正在使用平台 A buildroot 配置文件)。 2) 平台 B 不需要 conf 文件,但由于 make clean 没有完成(尽管使用了平台 B buildroot 配置文件);目标中存在不必要的 /etc/。如果 make clean 完成,那么工具链也需要重建。

感谢您的任何回答。

【问题讨论】:

【参考方案1】:

是的。请参阅http://free-electrons.com/~thomas/pub/using-buildroot-real-project.pdf 了解一些未完成的幻灯片。

您可以做的是为所有交叉编译工具链构建一次(使用 Buildroot 或 crosstool-NG),然后告诉 Buildroot 将此预构建的交叉编译工具链用作“外部工具链”。这样一来,Buildroot 将使用现有的编译器,并且在每次完全重建 Buildroot 时,您将节省完整的工具链构建时间。

请注意,这只适用于相当新的 Buildroot 版本,即可能不到一年。

【讨论】:

我正在尝试在 buildroot-2009.01 上进行相同的配置,这意味着外部工具链;但最终在构建过程中出现了一些错误。有没有办法可以在较旧的 buildroot 上完成这项工作? uclibc.mk 存在问题; BR2_TOOLCHAIN_SOURCE 的 if 没有 endif。看到此问题已在 buildroot-2009.02 中修复。对于任何想在 buildroot-2009.01 中使用 EXTERNAL TOOLCHAIN 的人,请在 buildroot-2009.01/toolchain/uClibc 文件夹下的 uclibc.mk 中添加 endif @ the end。谢谢。

以上是关于Buildroot 工具链 - 只需要构建一次的主要内容,如果未能解决你的问题,请参考以下文章

buildroot 介绍

Buildroot构建指南——工具链

buildroot 构建交叉编译工具链

Buildroot介绍

buildroot 不考虑配置更改

Valgrind for ARM 和 Linaro 工具链需要 libc6-dbg 和 Buildroot