Lua:编译 C 模块时出现“检测到多个 Lua VMs”

我在 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" 时,会出现检测到多个 Lua VMs 的错误。(当然,我已经将共享库复制到了正确的路径)。我找不到解决方法,你能帮我吗?谢谢。

点赞