[发明专利]一种编译方法及装置有效
申请号: | 202210038682.X | 申请日: | 2022-01-13 |
公开(公告)号: | CN114371852B | 公开(公告)日: | 2023-10-24 |
发明(设计)人: | 王龙海 | 申请(专利权)人: | 抖音视界有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京中知法苑知识产权代理有限公司 11226 | 代理人: | 李明 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 编译 方法 装置 | ||
1.一种编译方法,其特征在于,包括:
获取目标源文件,并生成所述目标源文件对应的待编译文件目录;所述目标源文件中包含基于第一编程语言编写的第一源代码、基于第二编程语言编写的第二源代码、打包后的资源文件和资源索引文件;所述待编译文件目录中包含所述第一源代码的文件标识、所述第二源代码的文件标识、所述打包后的资源文件的文件标识以及所述资源索引文件的文件标识;
响应于所述第一源代码的编译过程启动,将所述资源索引文件的文件标识从所述待编译文件目录中移除,并基于移除所述资源索引文件的文件标识后的待编译文件目录,对所述第一源代码进行编译;
响应于所述第二源代码的编译过程启动,将所述资源索引文件的文件标识添加至所述待编译文件目录中,并基于添加所述资源索引文件的文件标识后的待编译文件目录,对所述第二源代码进行编译。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将对所述第一源代码进行编译得到的第一编译产物及对所述第二源代码进行编译得到的第二编译产物融合,得到第三编译产物;
对所述第三编译产物进行格式转换,得到所述目标源文件对应的可执行文件。
3.根据权利要求1所述的方法,其特征在于,所述基于移除所述资源索引文件的文件标识后的待编译文件目录,对所述第一源代码进行编译,包括:
基于移除所述资源索引文件的文件标识后的待编译文件目录,对所述第一源代码的注释进行处理,得到所述第一源代码的注释对应的中间代码;
基于移除所述资源索引文件的文件标识后的待编译文件目录,对所述中间代码及所述第一源代码进行编译,得到第一编译产物。
4.根据权利要求1所述的方法,其特征在于,所述获取目标源文件,包括:
获取待编译的初始源文件;所述初始源文件包括初始资源文件、所述第一源代码和所述第二源代码;
将所述初始资源文件打包,得到所述打包后的资源文件以及所述打包后的资源文件对应的所述资源索引文件;
将所述资源索引文件、所述打包后的资源文件、所述第一源代码及所述第二源代码作为所述目标源文件所述目标源文件。
5.根据权利要求1所述的方法,其特征在于,所述资源索引文件为R.Java文件;所述待编译文件目录为SourceSet目录。
6.根据权利要求1所述的方法,其特征在于,所述第一编程语言为Kotlin语言;所述第二编程语言为Java语言。
7.一种编译装置,其特征在于,包括:
获取模块,用于获取目标源文件,并生成所述目标源文件对应的待编译文件目录;所述目标源文件中包含基于第一编程语言编写的第一源代码、基于第二编程语言编写的第二源代码、打包后的资源文件和资源索引文件;所述待编译文件目录中包含所述第一源代码的文件标识、所述第二源代码的文件标识、所述打包后的资源文件的文件标识以及所述资源索引文件的文件标识;
第一编译模块,用于响应于所述第一源代码的编译过程启动,将所述资源索引文件的文件标识从所述待编译文件目录中移除,并基于移除所述资源索引文件的文件标识后的待编译文件目录,对所述第一源代码进行编译;
第二编译模块,用于响应于所述第二源代码的编译过程启动,将所述资源索引文件的文件标识添加至所述待编译文件目录中,并基于添加所述资源索引文件的文件标识后的待编译文件目录,对所述第二源代码进行编译。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括第三编译模块,用于:
将对所述第一源代码进行编译得到的第一编译产物及对所述第二源代码进行编译得到的第二编译产物融合,得到第三编译产物;
对所述第三编译产物进行格式转换,得到所述目标源文件对应的可执行文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于抖音视界有限公司,未经抖音视界有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210038682.X/1.html,转载请声明来源钻瓜专利网。