我正在使用luajit 2.0.3
,我想在myproject中使用luasocket。在jit
中需要socket时,它报告了一个错误
"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。
最佳答案
LuaJIT与Lua 5.1兼容ABI,这意味着您可以针对标准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
关于luajit - luasocket 3.0, undefined symbol :lua_callk,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22840437/