lua调用c/c++ so
来源:互联网 发布:ajax post请求无数据 编辑:程序博客网 时间:2024/04/30 06:46
lua require机制
local m= require "mod"//返回由模块函数组成的table
// 1 lua文件loadfile加载 2 c文件loadlib加载( 定义一个 luaopen_<模块名>的函数,loadlib加载成功会调用
luaopen_<模块名> 小技巧:
模块名为a-b,则会调用 luaopen_b函数
搜索文件路径
1 LUA_PATH /LUA_CPATH
2
mod.foo()
m.foo()
一 require lua file
complex.lua
local modname = ...
local M={}
_G[modname]=M
package.loaded[modname]=M
function M.add(c1,c2)
return c1+c2
end
complex_test.lua
local c = require "complex"
print( c.add(1,2) )
print( complex.add(2,3))
:!lua-5.2.3 complex_test.lua
3
5
lua5.1后支持的一种写法
complex.lua
module(...,package.seeall)
function add(c1,c2)
return c1+c2
end
二 require c file
require_c.c
#include <stdio.h>
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
static int add(lua_State *L)
{
int a,b,c;
a=luaL_checknumber(L,1);
b=luaL_checknumber(L,2);
c=a+b;
lua_pushnumber(L,c);
return 1;
}
static const struct luaL_Reg lib[]={
{"cadd",add},
{NULL,NULL},
};
int luaopen_require_c(lua_State *L)
{
//luaL_openlib( L,"requirec",lib,0);
luaL_newlib( L, lib);
return 1;
}
gcc require_c.c -fPIC -shared -o require_c.so -I ~/lua_so/include/
require_test.lua
local c = require "require_c"
print(c.cadd(1,4))
0 0
- lua调用c/c++ so
- mac下lua调用c生成的so文件
- lua——alien库实现lua调用C动态链接库(dll、so)
- [Lua]C/C++调用Lua
- [lua]C调用lua函数
- C/C++ 调用 Lua
- c调用lua脚本
- Lua调用C函数
- C调用lua
- lua 调用c函数
- lua c/c++ 调用
- Lua调用C函数
- lua调用c函数
- Lua调用C函数
- c调用lua
- c 调用 lua
- c、c++调用lua
- c/c++ 调用lua
- 【刷题小记13】Fibonacci数
- Chapter 3 Machine-Level Representation of Programs [《CSAPP》 笔记]
- UVA11731 - Ex-circles
- sdut 2-1 Point类的定义
- OGNL
- lua调用c/c++ so
- 学习Emacs系列教程(八):查找替换
- 链表C++实现
- 无法创建堆栈的防护页面 解决方法
- linux中platform_bus_type注册使用到的数据结构和函数
- uva10020
- 从SqlHelper到泛型集合(1)
- 微信企业号请求数据基类封装
- oracle存储过程例子(实战项目)