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 工具链 - 只需要构建一次的主要内容,如果未能解决你的问题,请参考以下文章