【技术实现步骤摘要】
一种编译方法及装置
[0001]本公开涉及计算机
,具体而言,涉及一种编译方法及装置。
技术介绍
[0002]科特林(Kotlin)是一种用于多平台应用的静态编程语言,可以编译成Java字节码、JavaScript或二进制代码,便于在没有Java虚拟机的设备上运行,由于Kotlin的各种优点,开发人员使用Kotlin也越来越频繁。通常,Kotlin代码的编译需要花费较长的时间,在为了降低耗时引入一些开发工具或插件之后,发现了许多由于内存不足导致编译失败的情况。内存不足(Out Of Memory,OOM)通常是由于虚拟机本身可用的内存不足,或者应用占用的内存没有被释放导致的内存泄漏或者内存溢出引起的。目前,难以在使用插件保证编译速度的同时避免OOM问题,Kotlin编译的效率较低。
技术实现思路
[0003]本公开实施例至少提供一种编译方法及装置。
[0004]第一方面,本公开实施例提供了一种编译方法,包括:
[0005]获取目标源文件,并生成所述目标源文件对应的待编译文件目录;所述目标 ...
【技术保护点】
【技术特征摘要】
1.一种编译方法,其特征在于,包括:获取目标源文件,并生成所述目标源文件对应的待编译文件目录;所述目标源文件中包含基于第一编程语言编写的第一源代码、基于第二编程语言编写的第二源代码、打包后的资源文件和资源索引文件;所述待编译文件目录中包含所述第一源代码的文件标识、所述第二源代码的文件标识、所述打包后的资源文件的文件标识以及所述资源索引文件的文件标识;响应于所述第一源代码的编译过程启动,将所述资源索引文件的文件标识从所述待编译文件目录中移除,并基于移除所述资源索引文件的文件标识后的待编译文件目录,对所述第一源代码进行编译;响应于所述第二源代码的编译过程启动,将所述资源索引文件的文件标识添加至所述待编译文件目录中,并基于添加所述资源索引文件的文件标识后的待编译文件目录,对所述第二源代码进行编译。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:将对所述第一源代码进行编译得到的第一编译产物及对所述第二源代码进行编译得到的第二编译产物融合,得到第三编译产物;对所述第三编译产物进行格式转换,得到所述目标源文件对应的可执行文件。3.根据权利要求1所述的方法,其特征在于,所述基于移除所述资源索引文件的文件标识后的待编译文件目录,对所述第一源代码进行编译,包括:基于移除所述资源索引文件的文件标识后的待编译文件目录,对所述第一源代码的注释进行处理,得到所述第一源代码的注释对应的中间代码;基于移除所述资源索引文件的文件标识后的待编译文件目录,对所述中间代码及所述第一源代码进行编译,得到第一编译产物。4.根据权利要求1所述的方法,其特征在于,所述获取目标源文件,包括:获取待编译的初始源文件;所述初始源文件包括初始资源文件、所述第一源代码和所述第二源代码;将所述初始资源文件打包,得到所述打包后的资源文件以及所述打包后的资源文件对应的所述资源索引文件;将所述资源索引文件、所述打包后的资源文件、所述第一源代码及所述第二源代码作为所述目标源文件所述目标源文件。...
【专利技术属性】
技术研发人员:王龙海,
申请(专利权)人:北京字节跳动网络技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。