luasocket 3.0,未定义符号:lua_callk

时间:2014-04-03 14:15:18

标签: luajit luasocket

我正在使用luajit 2.0.3,我想在myproject中使用luasocket。当jit中需要套接字时,它报告错误

"error loading module 'socket.core' from file '/usr/local/lib/lua/5.1/socket/core.so': /usr/local/lib/lua/5.1/socket/core.so: undefined symbol: lua_callk. 

我使用lua5.1在luasocket 3.0中编译了debian 5.0。 我搜索了很多答案,但都没有帮助。我使用lua5.1在debian 5.0中编译了luasocket 3.0。

1 个答案:

答案 0 :(得分:1)

LuaJIT与Lua 5.1兼容,这意味着,您可以针对标准Lua头编译C模块,并从Lua或LuaJIT加载它。

从错误消息判断,LuaSocket需要函数lua_callk,但是,就像今天一样,这个函数没有在LuaJIT中实现。已经要求实现此功能以及lua_pcallklua_yieldk,但这样做需要LuaJIT切换到Lua 5.2 ABI [1]。

我建议您切换到旧版本的LuaSocket(例如2.0.2)或检查是否可以编译LuaSocket以保持5.1 ABI兼容性。

[1] http://www.freelists.org/post/luajit/Yielding-across-C-boundaries,3