[发明专利]一种文件编译的方法及装置在审
申请号: | 201711403827.7 | 申请日: | 2017-12-22 |
公开(公告)号: | CN108153529A | 公开(公告)日: | 2018-06-12 |
发明(设计)人: | 符志清 | 申请(专利权)人: | 杭州迪普科技股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 林祥 |
地址: | 310051 浙江省杭*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 头文件 源文件 依赖关系 编译 文件编译 目标文件 预处理 更新目标 重新生成 更新 申请 检测 | ||
本申请提供一种文件编译的方法及装置。一种文件编译的方法,包括:基于目标文件对源文件、第一头文件及所述第一头文件包含的第二头文件的依赖关系,对所述源文件进行编译,所述第一头文件为所述源文件所包含的头文件;当检测到所述第二头文件导致的编译错误时,对所述第一头文件进行预处理,获取所述第一头文件当前所包含的第三头文件;根据所述源文件、所述第一头文件及所述第三头文件更新所述依赖关系;基于更新后的依赖关系,对所述源文件进行编译,以重新生成所述目标文件。本申请可通过更新目标文件对源文件及头文件的依赖关系,从而可在源文件间接包含的头文件被修改的情况下,实现编译过程的正常执行,并可提高编译效率。
技术领域
本申请涉及计算机技术领域,尤其涉及一种文件编译的方法及装置。
背景技术
软件开发过程中,经常会出现多个源文件共用相同的数据或函数等,为使代码编写简洁,开发人员通常会将上述数据或函数写在头文件中,并在需要引用上述数据或函数的源文件中通过特定的语法包含该头文件即可。编译过程中,通常还可为待生成的目标文件建立一组依赖关系,该依赖关系描述的是生成上述目标文件需要哪些源文件及头文件。由于此依赖关系的存在,后续若生成上述目标文件所需的头文件或源文件被修改,则将会触发该源文件重新编译,以重新生成上述目标文件。
然而,实际应用中,对头文件的修改可能有多种情况,例如,将头文件1包含的头文件2改名为头文件3,或者修改头文件1的包含关系,使其除了包含头文件2外,再包含头文件4。上述修改将触发包含上述头文件1的源文件重新编译以生成对应的目标文件,但由于上述修改不会造成原有的依赖关系的改变,由此在对源文件间接包含的头文件被修改时,重新编译源文件可能会出现找不到头文件的错误,从而导致编译失败。
发明内容
有鉴于此,本申请提供一种文件编译的方法及装置,以在源文件间接包含的头文件被修改的情况下实现编译过程的正常执行,同时可提高编译效率。
具体地,本申请是通过如下技术方案实现的:
一种文件编译的方法,包括:
基于预先建立的目标文件对源文件、第一头文件及所述第一头文件包含的第二头文件的依赖关系,对所述源文件进行编译,所述第一头文件为所述源文件所包含的头文件;
当检测到所述第二头文件导致的编译错误时,对所述第一头文件进行预处理,获取所述第一头文件当前所包含的第三头文件;
根据所述源文件、所述第一头文件及所述第三头文件更新所述依赖关系;
基于更新后的依赖关系,对所述源文件进行编译,以重新生成所述目标文件。
一种文件编译的装置,包括:
第一编译模块,用于基于预先建立的目标文件对源文件、第一头文件及所述第一头文件包含的第二头文件的依赖关系,对所述源文件进行编译,所述第一头文件为所述源文件所包含的头文件;
获取模块,用于当检测到所述第二头文件导致的编译错误时,对所述第一头文件进行预处理,获取所述第一头文件当前所包含的第三头文件;
更新模块,用于根据所述源文件、所述第一头文件及所述第三头文件更新所述依赖关系;
第二编译模块,用于基于更新后的依赖关系,对所述源文件进行编译,以重新生成所述目标文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州迪普科技股份有限公司,未经杭州迪普科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711403827.7/2.html,转载请声明来源钻瓜专利网。