我正在使用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。
答案 0 :(得分:1)
LuaJIT与Lua 5.1兼容,这意味着,您可以针对标准Lua头编译C模块,并从Lua或LuaJIT加载它。
从错误消息判断,LuaSocket需要函数lua_callk
,但是,就像今天一样,这个函数没有在LuaJIT中实现。已经要求实现此功能以及lua_pcallk
和lua_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