[发明专利]快速编译工程代码的方法在审
申请号: | 202211038837.6 | 申请日: | 2022-08-29 |
公开(公告)号: | CN115437640A | 公开(公告)日: | 2022-12-06 |
发明(设计)人: | 朱进;杨凯;刘继明;金宁;刘松 | 申请(专利权)人: | 网经科技(苏州)有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 江苏圣典律师事务所 32237 | 代理人: | 王玉国 |
地址: | 215021 江苏省苏州市工*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 快速 编译 工程 代码 方法 | ||
本发明涉及快速编译工程代码的方法,提取工程所有Makefile文件,解析出编译目标target和依赖目标,生成target依赖关系文件;依据target依赖关系文件解析和计算出每个target的编译依赖深度;依据计算的target编译依赖深度结果利用多线程并发编译多个target。基于工程Makefile文件解析和运用多线程技术实现工程代码编译时间大幅降低,采用多线程技术充分发挥编译服务器的性能,充分利用CPU资源,并发编译多个target,极大的缩减了编译整个工程代码的时间,高效的完成全工程编译。
技术领域
本发明涉及一种快速编译工程代码的方法。
背景技术
目前,嵌入式软件发展迅速,以政企网关设备为例,客户需求越来越多,进而设备所需的功能模块越来越多,导致工程代码日渐庞大,传统的编译方法为直接添加新target,整个工程target按顺序执行,从而编译时间会逐步变长,极大的影响了开发效率;并且当前编译服务器的CPU都是多核的,按传统的编译方法,如果单个target本身无法支持多核同时编译,则编译服务器的资源会极大的浪费,因此充分利用编译服务器性能快速高效的编译工程代码成为一个切实的需求。
发明内容
本发明的目的是克服现有技术存在的不足,提供一种快速编译工程代码的方法。
本发明的目的通过以下技术方案来实现:
快速编译工程代码的方法,特点是:对拥有多target的工程代码的Makefile文件解析提取出target和对应依赖,利用多线程并发编译多个target,包括以下步骤:
1)提取工程所有Makefile文件,解析出编译目标target和依赖目标,生成target依赖关系文件;
2)依据target依赖关系文件解析和计算出每个target的编译依赖深度;
3)依据计算的target编译依赖深度结果利用多线程并发编译多个target。
进一步地,上述的快速编译工程代码的方法,其中,所述步骤1),target依赖文件格式定义如下:
targetA=空
targetB=空
targetC=targetA,targetB
targetA、targetB和targetC为工程待编译目标,targetA无依赖,targetB无依赖,targetC依赖targetA和targetB,故targetA和targetB是targetC的依赖,多个依赖以逗号分隔。
进一步地,上述的快速编译工程代码的方法,其中,所述步骤2),依据target依赖关系文件解析和计算出每个target的编译依赖深度,步骤如下:
S21)依据target依赖文件解析出所有target进行保存,存储结构为Hash链表;
S22)依据target依赖文件解析出所有target的依赖进行保存,存储结构为字符串数组;
S23)target校验,剔除相同的target依赖记录;
S24)遍历步骤S21)中生成的Hash链表,若target对应的依赖为空,则依赖深度为1,若target有对应依赖,则依赖深度+1,将依赖当作target递归计算,得到最终依赖深度,相同依赖深度的target存储到同一链表,最终生成多条依赖深度不同的链表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网经科技(苏州)有限公司,未经网经科技(苏州)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211038837.6/2.html,转载请声明来源钻瓜专利网。