由于 luaL_register()在Lua 5.2中已经改变了。要使用luaL_newlib()来代替。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
// my_math.c
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
#include <math.h>
#include <stdio.h>
static
int
my_math_sin (lua_State *L) {
lua_pushnumber(L,
sin
(luaL_checknumber(L, 1)));
return
1;
}
static
int
my_math_cos (lua_State *L) {
lua_pushnumber(L,
cos
(luaL_checknumber(L, 1)));
return
1;
}
static
const
luaL_Reg mathlib[] = {
{
"my_cos"
, my_math_cos},
{
"my_sin"
, my_math_sin},
{NULL, NULL}
};
/*
** Open my_math library
*/
LUALIB_API
int
luaopen_my_math (lua_State *L) {
luaL_newlib(L, mathlib);
return
1;
}
|
1
2
3
4
5
6
|
// callc.lua
my_math = require(
"my_math"
)
print(my_math.my_sin(3.14))
print(my_math.my_cos(3.14))
|