Lua 5.1.5编译安装luasocket2.0.x时发现的问题及“粗暴”的解决办法

最近往正式的服务器部署nginx+lua+redis的环境。

虽然内网安装的时候很苦逼,但是没出什么奇怪的问题,很顺利的就装完了。可今天往线上部署的时候就遇到奇怪的问题了。

去外网服务器发现nginx+lua的各模块都装好了,心想这可省大事儿了,就差一luasocket的包没装。于是快速的把包编译好,把代码一发布,配好nginx,reload,然后去浏览器F5……尼玛的500了……

查代码……没错误
查错误日志……"/path/to/socket/core.so: undefined symbol: luaL_openlib"
再刷……"loop or previous error loading module 'socket.http'"

问题锁定在luasocket包上。删了各种文件,重新编译,错误依旧。

对比测试机和正式机的软件环境
nginx……版本不一样
lua……版本不一样

有没有可能是lua版本的问题?由于编译luasocket用的是LuaJIT2.0.2的头文件,所以编译过程中没报错。
怒换lua5.1.4……编译还是没报错,但是问题还是一样
换lua5.1.5……编译终于报错了,但是编译成功,问题还没变……

“哎我这个暴脾气……%(@!#&%(”(此处省略1024字)

既然是lua版本的问题,那就找一下luaL_openlib在哪定义的吧。这倒简单,在lauxlib.h里就找到了,定义成了……luaI_openlib……?!哎?I?不是L?5.1.4也这样?但是我注意到前面有一个定义#define luaI_openlib luaL_openlib……

具体的原因也懒得查了,直接简单粗暴的将luasocket里用到luaL_openlib的全改成luaI_openlib,用5.1.5的头文件编译,虽然也报错,但编译通过,问题解决……

等有空了再研究吧……累了……睡了……

转载于:https://my.oschina.net/twtfengzi/blog/179186

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值