找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
广告投放联系QQ68610888广告投放联系QQ68610888
查看: 581|回复: 12

问一个openwrt编译过程中比较无聊的问题

[复制链接]
发表于 2026-1-12 15:43 | 显示全部楼层 |阅读模式
openwrt源码就200多兆,编译出来的固件也就10多兆不到20兆不编译乱七八糟插件的情况下。本地编译为啥cpu吃满还要跑好几个小时啊?为啥需要吃这么多算力和时间?又不是源代码有好几个GB,编译出来也有一两个GB,就那点代码不是分分钟的事情嘛?我学单片机的时候看到keil编译很快从代码编译成.bin格式的二进制文件了啊,当然单片机的源代码一般只有几个KB大小。






本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
 楼主| 发表于 2026-1-12 15:46 | 显示全部楼层
一个小小的路由器openwrt系统都需要这么长时间,不知道像windows系统这样动辄五六个GB的体积从源代码编译成系统包需要多长时间?一般用什么样的配置去编译?
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2026-1-12 15:53 | 显示全部楼层
你这么拉跨的电脑还用虚拟机,性能估计只剩下四分之一,我16G内容,固泰,八核心,编译一般半小时,当然了编译过程中网络不畅的话可以几天也不行,比如编译过程中拉取github一个3MB的文件,你网络正常的话可以一秒,单纯直连网络的话我这里电信起码四个小时下载。所以慢还得看什么情况,电脑慢还是编译过程中各种依赖拉取不畅通

点评

我有一个想法,编译完成一遍后把虚拟机的镜像文件保存下来,然后倒入到另一台虚拟机再进行编译会不会就不用再去联网重复下载那么多东西了?也不用费时费力的再去搭建需要的环境了,也就不用烦心去解决之前遇到的各种  详情 回复 发表于 2026-1-12 16:08
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

 楼主| 发表于 2026-1-12 16:08 | 显示全部楼层
隐形的肩膀 发表于 2026-1-12 15:53
你这么拉跨的电脑还用虚拟机,性能估计只剩下四分之一,我16G内容,固泰,八核心,编译一般半小时,当然了 ...

我有一个想法,编译完成一遍后把虚拟机的镜像文件保存下来,然后倒入到另一台虚拟机再进行编译会不会就不用再去联网重复下载那么多东西了?也不用费时费力的再去搭建需要的环境了,也就不用烦心去解决之前遇到的各种奇怪的报错了

点评

你不做feeds update和make -j这两部就不会联网更新,但是编译出错概率比较大  详情 回复 发表于 2026-1-12 17:25
那这样就比较像docker了,呵呵  详情 回复 发表于 2026-1-12 16:09
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

 楼主| 发表于 2026-1-12 16:09 | 显示全部楼层
ok96ub 发表于 2026-1-12 16:08
我有一个想法,编译完成一遍后把虚拟机的镜像文件保存下来,然后倒入到另一台虚拟机再进行编译会不会就不 ...

那这样就比较像docker了,呵呵
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2026-1-12 16:18 来自手机 | 显示全部楼层
排除编译过程中下载文件的耗时,首先要编译内核啊,再是各种包,你如果开了一些编译优化,或者是选到编译rust,这个时间肯定很长
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2026-1-12 17:06 来自手机 | 显示全部楼层
云编译个把小时左右
本来编译就花时间,linux下编一个软件也要好久
op不管你需要不需要,每次编译都要把整个源码下载或更新一遍,路由器如果是arm还需要交叉编译,更花时间
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2026-1-12 17:13 | 显示全部楼层
如果你打算编译docker或者qbittorrent,嘿嘿~~~~
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2026-1-12 17:25 来自手机 | 显示全部楼层
ok96ub 发表于 2026-1-12 16:08
我有一个想法,编译完成一遍后把虚拟机的镜像文件保存下来,然后倒入到另一台虚拟机再进行编译会不会就不 ...

你不做feeds update和make -j这两部就不会联网更新,但是编译出错概率比较大
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2026-1-13 21:45 | 显示全部楼层
编译逻辑不好,其实有快速的办法就是研究imagebuilder这个文件夹,openwrt是先把插件整体编译出来再把他们放进去,插件还有很多模块,各种模块都要单独编译,编译完了再去把他们打包起来,你说的那些是增量编译,openwrt是单独编译,肯定慢。我的理解是这样的

点评

虽然我看不太懂你说的,但是编译完了我看不止有内核.itb和升级包.itb,还有uboot啥的 还有一些乱七八糟的类似插件的文件后缀名是.apk,这样的插件文件很多的。这些插件文件是干什么的啊?是不是先把这些插件编译出来  详情 回复 发表于 2026-1-14 08:11
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2026-1-13 23:39 | 显示全部楼层
openwrt,是很成熟的开源,用imagebuilder就可以了,个别插件如果么有,就用imagebuilder对应的SDK单独编译为ipk,放到imagebuilder的packages文件夹,这样就可以用imagebuilder快速“打包”固件。
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

 楼主| 发表于 2026-1-14 08:11 来自手机 | 显示全部楼层
panu 发表于 2026-1-13 21:45
编译逻辑不好,其实有快速的办法就是研究imagebuilder这个文件夹,openwrt是先把插件整体编译出来再把他们 ...

虽然我看不太懂你说的,但是编译完了我看不止有内核.itb和升级包.itb,还有uboot啥的 还有一些乱七八糟的类似插件的文件后缀名是.apk,这样的插件文件很多的。这些插件文件是干什么的啊?是不是先把这些插件编译出来,然后再把这些插件都编译到升级包.itb里面啊?

点评

把插件编译出来打包好,然后安装打包好的文件到固件里面,你编译好了看看最后的几个步骤你就懂了  详情 回复 发表于 2026-1-14 11:18
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

发表于 2026-1-14 11:18 | 显示全部楼层
ok96ub 发表于 2026-1-14 08:11
虽然我看不太懂你说的,但是编译完了我看不止有内核.itb和升级包.itb,还有uboot啥的 还有一些乱七八糟的 ...

把插件编译出来打包好,然后安装打包好的文件到固件里面,你编译好了看看最后的几个步骤你就懂了
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应、玻璃心。胡乱输入灌水等操作将会被封禁ID。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /2 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2026-8-24 00:01

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 电话:13506125623

快速回复 返回顶部 返回列表