openwrt编译太慢,如何从2.5hour缩短到7min

本文介绍了如何通过优化编译策略和利用多线程来显著加速openwrt的编译过程。通过完整编译后保存结果、避免不必要的下载和编译、调整Makefile以及利用多线程编译,成功将编译时间从2.5小时缩短到7分钟。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近编译一个项目,是openwrt架构。编译用了一个下午。出现了几个小问题,改改makefile或config,无关紧要就过去了。但实际全部完整编译一遍也是用2.5小时时间。

书归正传,如何加快编译,提高效率呢。

两个主要方向:

1、完整编译一遍,看哪些是老死不会变的代码,编译一遍,将结果压缩保存。使用脚本进行编译,make前将结果解压。 Makefile中将这部分编译的过程去掉。

2、多线程编译,如kernel和package中的ipk,使用make -j 8  编译效率大大提升。(我的可以是8线程编译,和电脑CPU性能有关系)

基于两个方向,对openwrt的编译过程进行整改。

a) 完整编译过后,将dl目录整体压缩保存。  这样,在编译脚本中,解压即可防止再下载的过程。

b) 编译耗时很久的两项: tools、toolchain。编译生成物在build_dir中为 your_proj/build_dir/host和 your_proj/build_dir/toolchain_xxx。 将其打包带走。然后修改your_proj/Makefile,让这两个大块头不再编译。

    将Makefile中 world: 的依赖prepare 去掉;

    将$(target/stamp-compile)依赖的$(tools/stamp-install)去掉;

    将$(OPENWRT_BUILD)的else分支(即再次编译分支)的include tools/Makefile 和include toolchain/Makefile 注释掉。

     将 your_proj/pack

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值