[alibaba/tengine]关于ngx_http_lua_module模块编译问题--luaL_getn与lua_objlen两个函数的问题

2024-07-10 630 views
9

Hi,您好~ 我在使用luajit(LuaJIT-2.1.0-beta3)进行编译时报错, modules/ngx_http_lua_module/src/ngx_http_lua_headers.c: In function 'ngx_http_lua_ngx_header_set': modules/ngx_http_lua_module/src/ngx_http_lua_headers.c:709:9: error: implicit declaration of function 'luaL_getn' [-Werror=implicit-function-declaration] n = luaL_getn(L, 3); ^ cc1: all warnings being treated as errors make[1]: [objs/addon/src/ngx_http_lua_headers.o] Error 1 make[1]: Leaving directory `/root/rpmbuild/BUILD/tengine-2.2.0' make: [build] Error 2

我怀疑是代码中引用的函数有问题,我修改了文件:modules/ngx_http_lua_module/src/ngx_http_lua_headers.c第709行中的函数luaL_getn转为:lua_objlen重新编译即可,不清楚是不是因为luajit的问题,后续是否考虑到新的函数支持?

回答

1

但是teginx/modules下的代码并没有修复啊,--with-http_lua_module默认用的是teginx/modules下的代码,并且没有option可以指定其他位置的源码

3

hi @vipcxj

是的,目前tengine依赖的lua-nginx-module并不是最新,考虑到tengine自身并不对lua-nginx-module做任何修改改,所以直接下载最新的lua模块替换可以fix这个问题。我们也在计划考虑是否将lua module从tengine src里移出,这样直接依赖官方lua-nginx-module即可,也减少依赖维护(只要维护tengine与lua-nginx-module版本兼容性即可,不做lua-nginx-module嵌入tengine source base的维护)

1

@chobits 通过替换源码的方式,编译成功了,虽然实际功能还没试