【技术实现步骤摘要】
使用Lua脚本和第三方C模块的应用程序的编译方法
本专利技术涉及跨平台的应用程序的编译方法,尤其涉及一种使用Lua脚本和第三方C模块的应用程序的编译方法。
技术介绍
Lua作为一种小巧的嵌入式脚本语言,由于它速度快且具有非常好的扩展性,这使得它在应用程序中可以被广泛使用。Lua自身并没有提供强大的库,所以在开发应用程序时往往需要引入第三方C模块对已有功能进行扩展和优化。第三方C模块一般都是以动态链接库的形式存在,当应用程序执行Lua脚本时,会去查找相应C模块的动态链接库并加载。这种加载方式在大部分系统中都没有问题。但是在有些系统中,应用程序的动态链接库查找路径会存在限制,或是系统会对应用程序加载动态链接库的行为做安全管控。要让使用Lua脚本和第三方C模块的应用程序在这种系统上正常运行,那么必然要花费很多时间进行适配,且存在着时间不确定的风险。如果类似需要适配的系统较多的话,那将极大的增加开发成本。
技术实现思路
鉴于目前现有技术的不足,本专利技术的目的在于提供一种使用Lua脚本和第三方C模块的应用程序的编 ...
【技术保护点】
1.一种使用Lua脚本和第三方C模块的应用程序的编译方法,包括以下步骤:/n将Lua脚本使用的第三方C模块编译为静态链接库,获得静态链接库的名称列表;/n解析Lua脚本,获取所述静态链接库的Lua脚本使用的第三方C模块名称以及相应模块加载接口函数名称的对应列表;/n通过初始化函数,将所述静态链接库的Lua脚本使用的第三方C模块嵌入到应用程序中进行编译,实现静态调用。/n
【技术特征摘要】
1.一种使用Lua脚本和第三方C模块的应用程序的编译方法,包括以下步骤:
将Lua脚本使用的第三方C模块编译为静态链接库,获得静态链接库的名称列表;
解析Lua脚本,获取所述静态链接库的Lua脚本使用的第三方C模块名称以及相应模块加载接口函数名称的对应列表;
通过初始化函数,将所述静态链接库的Lua脚本使用的第三方C模块嵌入到应用程序中进行编译,实现静态调用。
2.根据权利要求1所述的使用Lua脚本和第三方C模块的应用程序的编译方法,其特征在于,其中所述将Lua脚本使用的第三方C模块编译为静态链接库,获得静态链接库的名称列表,该步骤具体包括:
S1,将Lua脚本使用的第三方C模块编译为静态链接库;
S2,获取所述静态链接库的名称,得到静态链接库的名称列表。
3.根据权利要求2所述的使用Lua脚本和第三方C模块的应用程序的编译方法,其特征在于,其中所述S1,将Lua脚本使用的第三方C模块编译为静态链接库,使用ar工具打包成.a文件。
4.根据权利要求2所述的使用Lua脚本和第三方C模块的应用程序的编译方法,其特征在于,其中所述S2,获取所述静态链接库的名称,得到静态链接库的名称列表,是通过find和sed工具遍历所述静态链接库所在的目录并取出静态链接库的名称。
5.根据权利要求2所述的使用Lua脚本和第三方C模块的应用程序的编译方法,其特征在于,其中所述解析Lua脚本,获取静态链接库的Lua脚本使用的第三方C模块名称以及相应模块加载接口函数名称的对应列表,该步骤具体包括:
S3,解析Lua脚本,获取Lua脚本使用的第三方C模块的名称列表;
S4,根据Lua解释器中C模块接口函数的命名格式,获取C模块中开放的模块加载接口函数名称;
S5,解析完Lua脚本后,获得第三方C模块也即静态链接库的名称与模块加载接口函数名称的对应列表。<...
【专利技术属性】
技术研发人员:高祥,
申请(专利权)人:苏州迈科网络安全技术股份有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。