Lua ffi.加载无法找到没有绝对路径的库



Lua的ffi.load("library")导致cannot open shared object file: No such file or directory错误。

作为临时解决方案,我可以提供库的绝对或相对路径。如。ffi.load("./liblibrary.so").

我读到LUA_PATHLUA_CPATH需要设置。如:

export LUA_PATH="$PWD/src/?.lua"
export LUA_CPATH="$PWD/lib/?.so"

设置LUA_PATH使我能够"要求";从其他目录的lua文件,但LUA_CPATH似乎没有帮助加载共享对象。

ffi.load使用操作系统的正常dlopen机制。

在Linux上,这意味着您需要将库路径添加到LD_LIBRARY_PATH变量。

一旦设置了LD_LIBRARY_PATH, Lua就可以找到这个库。

我发现这个答案帮助我通过打印LD_LIBRARY_PATH上的任何匹配库来调试我的情况。

相关FFI文件

最新更新