Lua调用自定义C模块
程序员文章站
2022-03-07 10:43:12
这是《lua程序设计》中提到的,但是想成功执行,对于初学lua的确没那么简单。这里涉及如何如何生成一个动态链接库so文件;lua5.2中导出函数从lual_register...
这是《lua程序设计》中提到的,但是想成功执行,对于初学lua的确没那么简单。这里涉及如何如何生成一个动态链接库so文件;lua5.2中导出函数从lual_register变成了lual_newlib。对于具体的细节有待深入。这里的模块名是hello_lib, lua解释器会根据名字找到对应的模块,而后执行其中的 luaopen_xxx方法。 代码:
在lua中调用:
执行过程和结果:
1. c函数作为应用程序的一部分。
2. c函数库成为lua的模块。
将包含c函数的代码生成库文件,如linux的so,或windows的dll,同时拷贝到lua代码所在的当前目录,或者是lua_cpath环境变量所指向的目录,以便于lua解析器可以正确定位到他们。在我当前的windows系统中,我将其copy到"c:\program files\lua\5.1\clibs\",这里包含了所有lua可调用的c库。见如下c语言代码和关键性注释:
见如下lua代码:
require "mytestlib" --指定包名称
--在调用时,必须是package.function
上一篇: angular和BootStrap3实现购物车功能
下一篇: python爬虫(1)——正则表达式