我在Mac OS X 10.12(Sierra)上使用Lua 5.3.4。
我使用“make macosx install”构建了Lua。
我正在尝试扩展Lua,编写一个我可以从Lua调用的C模块。 为此,我写了这个C代码:
#include <math.h>
#include <lua/lua.h>
#include <lua/lauxlib.h>
#include <lua/lualib.h>
static int l_sin (lua_State *L)
{
double d = lua_tonumber (L, 1);
lua_pushnumber (L, sin (d));
return 1;
}
static const struct luaL_Reg mylib[] = {
{"l_sin", l_sin},
{NULL, NULL}
};
int luaopen_mylib (lua_State *L)
{
luaL_newlib (L, mylib);
return 1;
}
如果我尝试用gcc -Wall -shared -fPIC -o mylib.so -llua mylib.c
(或者我在网上找到的其他方式)编译它,当我在Lua解释器上l = require "mylib"
时,我得到multiple Lua VMs detected
。 (当然我已经在正确的路径中复制了共享库)
我找不到解决办法,你能帮帮我吗?感谢