lua cjson 解决_luaL_setfuncs

安装lua 的cjson的时候遇到了以下的问题,只是截取了重要的部分

dlopen(/usr/local/lib/lua/5.2/cjson.so, 6): Symbol not found: _luaL_setfuncs

在网上查了很多很多。基本都说lua5.2不能用,改为安装openresty吧,openresty的功能多还没有问题等等。。。

我是一个用什么就安装什么的家伙,openresty虽然强,但是公司的服务只安装了lua5.2与luajit2.0.4。只因为一个功能就要重新部署服务器上的环境,这显而不现实。

于在苦逼的开始了网搜… 此处略过N名吐槽,还没有解决。最后发现cjson的Makefile文件中

LUA_VERSION =       5.1
TARGET =            cjson.so
PREFIX =            /usr/local
#CFLAGS =            -g -Wall -pedantic -fno-inline
CFLAGS =            -O3 -Wall -pedantic -DNDEBUG
CJSON_CFLAGS =      -fpic
CJSON_LDFLAGS =     -shared
LUA_INCLUDE_DIR =   $(PREFIX)/include
LUA_CMODULE_DIR =   $(PREFIX)/lib/lua/$(LUA_VERSION)
LUA_MODULE_DIR =    $(PREFIX)/share/lua/$(LUA_VERSION)
LUA_BIN_DIR =       $(PREFIX)/bin

这里面的参数与我自己的不太符合

LUA_VERSION =       5.2
TARGET =            cjson.so
PREFIX =            /usr/local/share/lua/5.2
#CFLAGS =            -g -Wall -pedantic -fno-inline
CFLAGS =            -O3 -Wall -pedantic -DNDEBUG
CJSON_CFLAGS =      -fpic
CJSON_LDFLAGS =     -bundle -undefined dynamic_lookup
LUA_INCLUDE_DIR =   /usr/local/Cellar/luajit/2.0.4/include/luajit-2.0 //指定到luajit中
LUA_CMODULE_DIR =   $(PREFIX)
LUA_MODULE_DIR =    $(PREFIX)
LUA_BIN_DIR =       $(PREFIX)/luarocks

重新make 成功了哈哈

把 cjson.so 放到我的公共库中,require “cjson” , 运行

{
    data: {
        视频转码服务v1.0.1 2015-11-11.docx: "1449027685.docx"
    },
    code: 10000,
    message: "ok"
}

成功了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值