[发明专利]一种用于Lua代码嵌入的编译方法、装置、终端及存储介质在审
申请号: | 202111577467.9 | 申请日: | 2021-12-22 |
公开(公告)号: | CN114385184A | 公开(公告)日: | 2022-04-22 |
发明(设计)人: | 高祥 | 申请(专利权)人: | 苏州迈科网络安全技术股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 南京苏科专利代理有限责任公司 32102 | 代理人: | 姚姣阳 |
地址: | 215127 江苏省苏州市工*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 lua 代码 嵌入 编译 方法 装置 终端 存储 介质 | ||
本发明揭示了一种用于Lua代码嵌入的编译方法、装置、终端及存储介质。本发明能够高效地将Lua代码嵌入各类跨平台应用程序中,且在方法的执行过程中,lua代码的嵌入并不会使得应用程序的程序包中文件个数增加,因为也就避免了系统了对程序读写文件的权限限制。同时,基于本发明的方法可以方便地实现自动化编译流程,降低企业的开发成本、提升企业的开发效率。
技术领域
本发明涉及一种用于Lua代码嵌入的编译方案,具体而言,涉及一种用于将Lua代码嵌入跨平台应用程序的编译方法、装置、终端及存储介质,属于计算机程序编译领域。
背景技术
Lua 是一种小巧的嵌入式脚本语言,其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。Lua由标准C语言编写而成,几乎在所有操作系统和平台上都可以编译、运行。由于Lua所具备的速度快、拓展性强等优点,使得其在各类应用程序中被广泛使用。
在实际的项目开发过程中,有时会遇到需要将用C语言开发的应用程序在不同厂家的设备上运行的情况。由于Lua所具备的上述优点,技术人员通常的应对方式是当程序启动后,读取 Lua 代码文件并加载执行。
但是在将应用程序集成到设备的过程中,各厂家的要求不尽相同,有些厂家会对设备内程序包中的文件个数和权限做限制。此时如果要让(使用了Lua代码的)应用程序顺利的在这类设备上正常集成运行,那么必然需要技术人员花费时间和厂家沟通并进行适配。而在现实环境中,各厂家都会有自己的一套工具链,如果类似需要集成适配的设备较多的话,那么必将极大地增加应用程序的开发成本。
综上所述,如何在现有技术的基础上提出一种全新的、用于将Lua代码嵌入跨平台应用程序的编译方案,以解决现有技术中所存在的不足和缺陷,也就成为了本领域内技术人员亟待解决的问题。
发明内容
鉴于现有技术存在上述缺陷,本发明提出了一种用于将Lua代码嵌入跨平台应用程序的编译方法、装置、终端及存储介质,具体如下。
一种用于Lua代码嵌入的编译方法,包括:
依据获取的第一ELF目标文件的文件格式和体系结构,将Lua代码文件转化为第二ELF目标文件,分别获取代表所述第二ELF目标文件起始地址和结束地址的符号变量;
自动生成一个C语言文件并实现一个函数,所述函数的存储区内存储有所述Lua代码文件内容,在应用程序需要加载所述Lua代码的程序代码前调用所述函数,将所述C语言文件编译为第三ELF目标文件;
将所述第二ELF目标文件与所述第三ELF目标文件链接成应用程序,完成所述Lua代码文件的嵌入。
优选地,所述依据获取的第一ELF目标文件的格式和体系结构,将Lua代码文件转化为第二ELF目标文件,分别获取代表所述第二ELF目标文件起始地址和结束地址的符号变量,包括:
任意选取一个应用程序编译过程中产生的ELF文件作为第一ELF目标文件;
获取所述第一ELF目标文件的文件格式和体系结构;
将Lua代码文件转化为具有所述第一ELF目标文件的文件格式和体系结构的第二ELF目标文件,所述Lua代码文件的内容存在于所述第二ELF目标文件的数据段中、将该数据段标记为DS;
查看所述第二ELF目标文件的符号表,获取其中的两个符号变量,一个符号变量代表数据段DS的起始地址、记为 pStartAddr;一个符号变量代表数据段DS的结束地址、记为pEndAddr。
优选地,所述自动生成一个C语言文件并实现一个函数,所述函数的存储区内存储有所述Lua代码文件内容,在应用程序需要加载所述Lua代码的程序代码前调用所述函数,将所述C语言文件编译为第三ELF目标文件,包括:
自动生成一个C语言文件,在所述C语言文件中实现一个函数,所述函数的功能是依据pStartAddr和pEndAddr计算并返回一段存储区,所述存储区内存放有所述Lua代码文件内容;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州迈科网络安全技术股份有限公司,未经苏州迈科网络安全技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111577467.9/2.html,转载请声明来源钻瓜专利网。