有没有人能够使它们一起工作?我已经将5.2很好地工作了,它可以找到lua-redis(redis.lua),但是它无法加载套接字模块,而我似乎无法使用lua(LuaSocket版本2.0.2)。任何人都有任何技巧可以使它正常工作吗?
我尝试过制作luasocket,但是它完全失败了,我认为这是由于我的lua版本5.2。
答案仅仅是恢复到lua 5.1,还是我不知道的另一种解决方法?
最佳答案
与许多Lua库一样,当前版本的LuaSocket不支持Lua 5.2。对于Lua,该版本第二位的更改表示主要版本,并且不维护向后兼容(在某些情况下,通过编译标志重新启用不赞成使用的功能除外)。
Lua 5.1是稳定的,除非您需要5.2中添加的功能,否则没有特别的理由不使用它。
就是说,目前许多库(包括LuaSocket)都已更新为5.2兼容。如果您决心从源代码中进行编译并调整makefile,请尝试this repository,它是LuaSocket的5.2兼容版本。
请注意,必须使用为此版本LuaSocket定义的LUA_COMPAT_MODULE
来构建Lua 5.2,才能对其进行编译。您还需要编辑makefile,以适应系统上的正确路径。
再过3-4个月左右,我认为许多通用库将与5.2兼容。但是,我认为除非是很小的东西,否则我认为基于5.2的项目还为时过早。将代码向下移植到5.2并不难(特别是如果您熟悉deprecated features,因此可以避免在5.1中过多依赖它们-特别是setfenv()
和module()
)。