[发明专利]一种基于代码集成的编译方法和装置在审
申请号: | 201910228017.5 | 申请日: | 2019-03-25 |
公开(公告)号: | CN110737437A | 公开(公告)日: | 2020-01-31 |
发明(设计)人: | 赫昆迎 | 申请(专利权)人: | 北京君正集成电路股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 11498 北京智为时代知识产权代理事务所(普通合伙) | 代理人: | 王加岭;杨静 |
地址: | 100094 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 编译 模块编译 目标工程 依赖关系 集合 方法和装置 代码集成 方案解决 获取目标 技术效果 文件生成 总集合 开发 携带 合作 | ||
本发明提供了一种基于代码集成的编译方法和装置,其中,该方法包括:获取目标工程中各个模块的开发文件,其中,开发文件中携带有模块的编译依赖信息;从各个模块的开发文件中提取出每个模块编译所依赖的模块和编译所依赖的文件;将各个模块编译所依赖的模块和编译所依赖的文件生成一个总集合,将所述总集合作为所述目标工程的编译依赖关系集合;根据编译依赖关系集合对所述目标工程进行编译。通过上述方案解决了现有的为了解决编译过程的依赖问题需要两个系统参与导致操作过于复杂的技术问题,达到了简单高效进行编译的技术效果。
技术领域
本发明涉及计算机技术领域,特别涉及一种基于代码集成的编译方法和装置。
背景技术
为了实现对代码的正确有序的编译,一般需要Makefile组织编译。其中,Makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,或者是其它更复杂的操作。然而,对于较大的工程而言,多个模块之间是存在依赖关系的,依赖关系主要包括:运行中的依赖和编译过程中的依赖。
下面对这两种依赖关系说明如下:
1)运行中的依赖:
这种依赖关系一般是一个模块依赖另外一个模块所创造的环境。例如:A模块编译生成a程序,B模块编译生成b程序,A模块与B模块编译过程彼此之间无任何依赖,但是a程序运行的时候需b程序提前创造某些环境,如果无b程序提前创建的环境,那么a程序会在运行的过程中出错或者不能执行。
2)编译中的依赖:
这种依赖情况多出现在运行程序与库的依赖中,仍旧以A、B两个模块为例:A模块中的某些函数是在B模块中实现的,即,A模块在编译、链接的时候需要链接B模块编译后的目标文件,以便找到所有函数的实现。
然而,在实际实现的时候,因为有些工程很庞大,且经常会用到第三方的库或者程序,第三方的程序经常彼此之间存在一定的依赖关系,为了解决编译中的依赖问题,经常需要同时用到两套系统,通过类似menuconfig的系统解决模块间的依赖问题,通过Makefile解决编译的问题。
针对需要用到两套系统的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种基于代码集成的编译方法,以达到简单高效解决模块间的依赖问题的目的,该方法包括:
获取目标工程中各个模块的开发文件,其中,开发文件中携带有模块的编译依赖信息;
从各个模块的开发文件中提取出每个模块编译所依赖的模块和编译所依赖的文件;
将各个模块编译所依赖的模块和编译所依赖的文件生成一个总集合,将所述总集合作为所述目标工程的编译依赖关系集合;
根据编译依赖关系集合对所述目标工程进行编译。
在一个实施方式中,根据所述编译依赖关系集合对所述目标工程进行编译包括:
在编译的过程中,在所述编译依赖关系集合中查找当前编译所依赖的文件和所依赖的模块是否存在;
如果不存在,则先编译得到不存在的所依赖的文件和编译不存在的所依赖的模块。
在一个实施方式中,模块的编译依赖信息包括:编译后生成的文件、生成文件的方法、编译所依赖的文件、编译所依赖的模块。
在一个实施方式中,所述开发文件以.mk的文件格式存在。
在一个实施方式中,应用于嵌入式Linux开发中。
本发明实施例还提供了一种基于代码集成的编译装置,以达到简单高效解决模块间的依赖问题的目的,该装置包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京君正集成电路股份有限公司,未经北京君正集成电路股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910228017.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:转码方法、装置及计算机可读存储介质
- 下一篇:一种数据处理方法和装置