依星源码资源网,依星资源网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

【好消息,好消息,好消息】VIP会员可以发表文章赚积分啦 !
查看: 12|回复: 0

一款由中国开发者打造的高性能编译系统,专为嵌入式Linux及复杂软件栈构建而设计

[复制链接] 主动推送

1万

主题

1万

帖子

2万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
20449
发表于 8 小时前 | 显示全部楼层 |阅读模式
一款由中国开发者打造的高性能编译系统,专为嵌入式Linux及复杂软件栈构建而设计
如下特性:
1.任务解析管理器,menuconfig配置,make运行
2.比CMake更快的编译工具,同一Makefile支持Classic/Yocto组合Cross/Native共4种编译;支持指定:O输出,DESTDIR安装,DEPDIR依赖
3.处理软件编译整个过程的脚本:支持网络下载、缓存处理和镜像加速等,支持类似repo作用的代码开发管理和Yocto的发布管理


它以轻量级核心(仅4000行代码)、极简设计和灵活兼容为核心理念,融合传统编译与Yocto模式的优势,提供比Buildroot更强大的功能,同时规避Yocto的复杂性。
  • 零门槛上手:无需学习新语言,基于Python/Shell/Makefile脚本实现,配置直观(支持类Linux的menuconfig),比Buildroot/Yocto更易理解。
  • 双模式驱动:
    • Classic Build:独立构建模式,依赖隔离清晰,支持缓存加速与跨平台部署。
    • Yocto Build:深度封装Yocto,提供 make 命令层和图形化配置,简化复杂元数据操作。
  • 企业级特性:智能依赖分析、多版本兼容、安全补丁管理,满足工业级开发需求。
对比 CBuild 最大的区别是 Classic Build 引入了 WORKDIR 概念,每个包都在自己的 WORKDIR 下的特定目录下准备依赖、编译、安装,包之间的依赖关系和 sysroot 由自动生成的顶层 Makefile 处理。
1 极致性能与资源优化
  • 编译速度快:实测300个软件包构建耗时仅5分钟,重编译仅49秒,速度远超Yocto(节省2/3时间)。
  • 低资源占用:输出文件系统体积仅为Yocto的1/4(1.8G vs 7.4G),显著降低存储成本。
  • 编译缓存机制:支持本地/远程镜像缓存,重复构建直接复用结果,节省90%以上时间。
2零学习曲线的友好设计
  • 无新语言:基于Python/Shell/Makefile,开发者无需学习DSL,开箱即用。
  • Kconfig图形化配置:提供类Linux内核的make menuconfig界面,依赖关系可视化,配置直观。
  • 中文文档支持:项目提供完整中文文档(README_zh-cn.md),降低本土开发者门槛。
3 灵活兼容双模式
  • Classic模式:类似Buildroot的独立构建,每个包在独立WORKDIR中处理,依赖隔离清晰。
  • Yocto模式:扩展Yocto的元数据层,封装bitbake命令,提供菜单配置支持,无缝兼容现有生态。
  • 混合编译支持:同一Makefile同时支持交叉编译与本地编译,简化多平台开发流程。
4企业级高级特性
  • 智能依赖管理:自动生成依赖图(支持强弱依赖/冲突检测),一键生成SVG可视化图表。
  • 独立软件包分发:类似AppImage的gen_cpk工具,自动打包运行时依赖,实现跨系统部署。
  • 安全合规支持:自动生成许可证清单(HTML),内置CVE补丁管理,满足企业合规需求。
功能组成
编译系统主要由三部分组成: 任务分析处理工具、Makefile 编译模板 (IMake)、网络和缓存处理工具。
  • 任务分析处理工具: 分析所有任务并自动生成总配置 Kconfig 和执行脚本 Makefile

    • 所有任务由 Python 脚本 gen_build_chain.py 分析组装
      • 自动收集所有任务的规则和参数,通过 make menuconfig 选择是否执行任务和配置任务参数
    • 每个任务规则由一条依赖语句声明,支持非常多的依赖规则
      • 支持自动生成执行任务的实包和管理任务的虚包的规则
      • 支持普通结构(config)、层次结构(menuconfig)、选择结构(choice) 等自动生成
      • 支持强依赖(depends on)、弱依赖(if...endif)、条件依赖、强选择(select)、弱选择(imply)、或规则(||) 等自动生成
    • 任务是 Makefile 脚本,由 make 执行
    • 支持生成任务依赖关系的图片,并有颜色等属性查看任务是否被选中等 gen_depends_image.sh
  • Makefile 编译模板 (IMake): 比肩 CMake Autotools Meson 等的编译工具,比他们更简洁快速,使用 menuconfig 配置参数,缺点是由于是纯粹 Makefile 实现所以不支持 Windows

    • 编译驱动、库、应用的模板,只需填写少数几个变量就可以完成一个超大项目的 Makefile
    • 支持编译生成最新的交叉编译工具链 process_machine.sh toolchain/Makefile
    • 一个 Makefile 同时支持 Classic Build 模式和 Yocto Build 方式,同时支持本地编译和交叉编译 inc.env.mk
    • 一个 Makefile 同时支持生成多个库、可执行文件或驱动
    • 支持自动分析头文件作为编译依赖,支持分别指定源文件的 CFLAGS 等
    • 支持指定编译输出目录(make O=xxx)、安装目录(make DESTDIR=xxx)、依赖的 sysroot 目录(make DEPDIR=xxx)
    • 提供编译静态库、共享库和可执行文件的模板 inc.app.mk,支持 C(*.c) C++(*.cc *.cp *.cxx *.cpp *.CPP *.c++ *.C) 和 汇编(*.S *.s *.asm) 混合编译
    • 提供编译驱动的模板 inc.mod.mk,支持 C(*.c) 和 汇编(*.S) 混合编译
    • 提供符合 GNUInstallDirs 标准的安装模板 inc.ins.mk
    • 提供 Kconfig (menuconfig) 配置参数的模板 inc.conf.mk
    • 提供调用原始的 Makefile CMake Autotools Meson 编译的模板 inc.rule.mk
  • 网络和缓存等处理工具(Classic Build): 处理包的下载、打补丁、编译、安装、打包,支持源码镜像和缓存镜像

    • 提供方便可靠的补丁机制 exec_patch.sh
    • 提供自动拉取网络包工具,支持从 http(支持 md5)、git(支持 branch tag revision)或 svn(支持 revision) 下载包,支持镜像下载 fetch_package.sh
    • 提供编译缓存工具,再次编译不需要从代码编译,直接从本地缓存或网络缓存拉取 process_cache.sh
    • 提供简洁的组装模板,且支持缓存编译 inc.rule.mk
    • 提供可靠的安装脚本和 sysroot 处理脚本 process_sysroot.sh
    • 提供丰富的开源软件层,开源包不断增加中
    • 提供生成所有包的描述信息的 HTML 文件的脚本 gen_package_infos.py
    • 提供生成独立包(打包包含系统依赖)的脚本 gen_cpk_package.py gen_cpk_binary.sh,功能类似 Snap、AppImage或Flatpak
  • 测试用例可以查看 examples_zh-cn.md

性能测试
  • 测试场景: 某 SDK 的 300 个包 8 线程本地文件系统编译
    [td]
    编译方法首次编译耗时再次编译耗时输出文件系统占用
    Classic Build5m1.790s0m49.785s1.8G
    CBuild Classic Build5m13.526s0m59.156s2.7G
    Yocto Build with cache15m42.554s3m31.520s7.4G+
  • 测试结果: 对比 Yocto Build,CBuild-ng 的 Classic Build 编译耗时减少 2/3,输出文件系统占用减少 3/4

任务分析处理编译架构
  • Classic Build 组成:
    • 应用和驱动的编译脚本都是由 Makefile + DEPS-statement 组成
    • 编译链通过 DEPS-statement 定义的依赖关系组装(包级别的依赖)
    • DEPS-statement 基本只需要定义依赖,遵循 CBuild 定义的组装规则
    • 脚本分析所有包的 DEPS-statement 自动生成所有包的编译链,所有包都是一个一个单独编译,可以单独进入包下敲 make 编译
    • 支持 Kconfig 自己管理或托管,托管的 Kconfig 必需放置和 DEPS-statement 语句文件的同目录,无需手动指定父子包含关系,而是由脚本自动分析组装
  • Yocto Build 组成:
    • 应用和驱动的编译脚本都是由 Makefile + Recipe 组成
    • 编译链通过在 Recipe 中定义的 DEPENDS / RDEPENDS 和扩展的 EXTRADEPS 依赖关系组装(包级别的依赖)
    • 自定义包的 Recipe 基本只需要定义依赖,遵循 Yocto 定义的组装规则
    • 扩展 Yocto 编译,脚本分析所有包的 Recipe 的文件名和自定义包的 Recipe 的 DEPENDS 变量自动生成所有包的编译链
    • 扩展 Yocto 编译,支持弱依赖,可通过 make menuconfig 修改 rootfs (增加包、删除包、修改配置等)



链接: https://pan.baidu.com/s/18YR8ZH-_T9pPkzo7txq17A
提取码下载:
文件名称:提取码下载.txt 
下载次数:0  文件大小:16 Bytes  售价:30金钱 [记录]
下载权限: 不限 [购买VIP]   [充值]   [在线充值]   【VIP会员6折;永久VIP4折】
安全检测,请放心下载





相关帖子

扫码关注微信公众号,及时获取最新资源信息!下载附件优惠VIP会员6折;永久VIP4折
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

免责声明:
1、本站提供的所有资源仅供参考学习使用,版权归原著所有,禁止下载本站资源参与商业和非法行为,请在24小时之内自行删除!
2、本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,请勿任何商业目的与商业用途。
3、若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
4、论坛的所有内容都不保证其准确性,完整性,有效性,由于源码具有复制性,一经售出,概不退换。阅读本站内容因误导等因素而造成的损失本站不承担连带责任。
5、用户使用本网站必须遵守适用的法律法规,对于用户违法使用本站非法运营而引起的一切责任,由用户自行承担
6、本站所有资源来自互联网转载,版权归原著所有,用户访问和使用本站的条件是必须接受本站“免责声明”,如果不遵守,请勿访问或使用本网站
7、本站使用者因为违反本声明的规定而触犯中华人民共和国法律的,一切后果自己负责,本站不承担任何责任。
8、凡以任何方式登陆本网站或直接、间接使用本网站资料者,视为自愿接受本网站声明的约束。
9、本站以《2013 中华人民共和国计算机软件保护条例》第二章 “软件著作权” 第十七条为原则:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。若有学员需要商用本站资源,请务必联系版权方购买正版授权!
10、本网站如无意中侵犯了某个企业或个人的知识产权,请来信【站长信箱312337667@qq.com】告之,本站将立即删除。
郑重声明:
本站所有资源仅供用户本地电脑学习源代码的内含设计思想和原理,禁止任何其他用途!
本站所有资源、教程来自互联网转载,仅供学习交流,不得商业运营资源,不确保资源完整性,图片和资源仅供参考,不提供任何技术服务。
本站资源仅供本地编辑研究学习参考,禁止未经资源商正版授权参与任何商业行为,违法行为!如需商业请购买各资源商正版授权
本站仅收集资源,提供用户自学研究使用,本站不存在私自接受协助用户架设游戏或资源,非法运营资源行为。
 
在线客服
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
售前咨询热线
312337667

微信扫一扫,私享最新原创实用干货

QQ|免责声明|小黑屋|依星资源网 ( 鲁ICP备2021043233号-3 )|网站地图

GMT+8, 2025-8-15 17:51

Powered by Net188.com X3.4

邮箱:312337667@qq.com 客服QQ:312337667(工作时间:9:00~21:00)

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