esrrhs / cLua

Lua的代码覆盖率工具 Lua code coverage.
MIT License
29 stars 7 forks source link

OpenResty框架,在Lua中嵌入clua动态库,程序运行失败问题 #4

Closed LamberttLiu closed 4 months ago

LamberttLiu commented 4 months ago

OpenResty的版本使用1.21.4.3, luajit 版本2.1.0 在lua语言中嵌入 libclua 库,发现程序运行失败。

2024-06-04 10:01:22:431|error|t=16796,fid=0x00000EB5,p=ngx_http_lua_util.c:1591,f=ngx_http_lua_run_thread|lua entry thread aborted: runtime error: error loading module 'libclua' from file '/home/hwlive/AGS/lualib/libclua.so':
        /home/hwlive/AGS/lualib/libclua.so: undefined symbol: luaL_checkversion_
stack traceback:
coroutine 0:
        [C]: in function 'require'

通过lld -r 命令,回显显示很多undefined symbol,请问这个问题如何解决:

linux-vdso.so.1 =>  (0x00007ffc56c7c000)
        libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007fc76aa28000)
        libm.so.6 => /lib64/libm.so.6 (0x00007fc76a726000)
        libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007fc76a50f000)
        libc.so.6 => /lib64/libc.so.6 (0x00007fc76a13e000)
        /lib64/ld-linux-x86-64.so.2 (0x00007fc76af3e000)
undefined symbol: lua_tointegerx        (/home/hwlive_alpha/RTC-AGS-Alpha/clua_cov_utils/src/libclua.so)
undefined symbol: lua_getstack  (/home/hwlive_alpha/RTC-AGS-Alpha/clua_cov_utils/src/libclua.so)
undefined symbol: lua_createtable       (/home/hwlive_alpha/RTC-AGS-Alpha/clua_cov_utils/src/libclua.so)
undefined symbol: lua_getinfo   (/home/hwlive_alpha/RTC-AGS-Alpha/clua_cov_utils/src/libclua.so)
undefined symbol: lua_tolstring (/home/hwlive_alpha/RTC-AGS-Alpha/clua_cov_utils/src/libclua.so)
undefined symbol: lua_sethook   (/home/hwlive_alpha/RTC-AGS-Alpha/clua_cov_utils/src/libclua.so)
undefined symbol: luaL_setfuncs (/home/hwlive_alpha/RTC-AGS-Alpha/clua_cov_utils/src/libclua.so)
undefined symbol: luaL_checkversion_    (/home/hwlive_alpha/RTC-AGS-Alpha/clua_cov_utils/src/libclua.so)
LamberttLiu commented 4 months ago

image image

esrrhs commented 4 months ago

luajit吗?不确定能不能支持呢,可能是有的库函数不支持吧

LamberttLiu commented 4 months ago

对的,是OpenResty框架下使用luajit,出现了未定义符号的问题,不知道应该怎么解决,您看有时间可否帮忙看下呢?

esrrhs commented 4 months ago

没有时间哦,代码都开源的,你研究研究下吧