申请/专利权人:苏州迈科网络安全技术股份有限公司
申请日:2018-08-21
公开(公告)日:2024-01-26
公开(公告)号:CN110858140B
主分类号:G06F8/41
分类号:G06F8/41;G06F9/445;G06F9/448;G06F9/455
优先权:
专利状态码:有效-授权
法律状态:2024.01.26#授权;2020.03.27#实质审查的生效;2020.03.03#公开
摘要:本发明揭示了一种使用Lua脚本和第三方C模块的应用程序的编译方法,包括以下步骤:将Lua脚本使用的第三方C模块编译为静态链接库,获得静态链接库的名称列表;解析Lua脚本,获取Lua脚本使用的第三方C模块也即静态链接库的名称以及相应模块加载接口函数名称的对应列表;通过初始化函数,将Lua脚本使用的第三方C模块也即静态链接库嵌入到应用程序中进行编译,实现静态调用。本发明通过将Lua脚本使用的C模块嵌入到应用程序进行编译,使得应用程序的编译方式可以通用化,无需再为跨平台的适配花费太多时间,同时还能做到让已存在的Lua脚本无需进行任何修改。这大大提高了开发效率,降低了开发成本。
主权项:1.一种使用Lua脚本和第三方C模块的应用程序的编译方法,包括以下步骤:将Lua脚本使用的第三方C模块编译为静态链接库,获得静态链接库的名称列表;解析Lua脚本,获取所述静态链接库的Lua脚本使用的第三方C模块名称以及相应模块加载接口函数名称的对应列表;通过初始化函数,将所述静态链接库的Lua脚本使用的第三方C模块嵌入到应用程序中进行编译,实现静态调用;其中所述将Lua脚本使用的第三方C模块编译为静态链接库,获得静态链接库的名称列表,该步骤具体包括:S1,将Lua脚本使用的第三方C模块编译为静态链接库;S2,获取所述静态链接库的名称,得到静态链接库的名称列表;其中所述解析Lua脚本,获取静态链接库的Lua脚本使用的第三方C模块名称以及相应模块加载接口函数名称的对应列表,该步骤具体包括:S3,解析Lua脚本,获取Lua脚本使用的第三方C模块的名称列表;具体是解析Lua脚本中的require功能模块,根据所述步骤S2中所述静态链接库的Lua脚本使用的第三方C模块的名称列表,判断require的模块是否是第三方C模块或是其中一部分,如果是则记录该第三方C模块的名称;S4,根据Lua解释器中C模块接口函数的命名格式,获取C模块中开放的模块加载接口函数名称;S5,解析完Lua脚本后,获得第三方C模块也即静态链接库的名称与模块加载接口函数名称的对应列表;其中所述通过初始化函数,将静态链接库的Lua脚本使用的第三方C模块嵌入到应用程序中进行编译,实现静态调用,该步骤具体包括:S6,设定初始化函数,将Lua脚本使用的第三方C模块全部实现静态调用;具体为通过初始化函数luaL_requiref以及所述Lua脚本使用的第三方C模块名称与模块加载接口函数名称的对应列表,自动动态生成,所述初始化函数存放在新增的C文件中;S7,在应用程序中调用所述初始化函数;具体是在应用程序中创建Lua虚拟机的代码后,调用所述初始化函数;S8,编译应用程序,将Lua脚本使用的第三方C模块嵌入到应用程序中,具体是将所述包含有初始化函数的新增的C文件加入到编译脚本中,则可将Lua脚本使用的第三方C模块嵌入到应用程序中。
全文数据:
权利要求:
百度查询: 苏州迈科网络安全技术股份有限公司 使用Lua脚本和第三方C模块的应用程序的编译方法
免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。