Lua:编译C模块给出“检测到多个Lua VM”

时间:2017-02-21 15:47:58

标签: c lua

我在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。 (当然我已经在正确的路径中复制了共享库)

我找不到解决办法,你能帮帮我吗?感谢

0 个答案:

没有答案