Lua的ffi.load("library")
导致cannot open shared object file: No such file or directory
错误。
作为临时解决方案,我可以提供库的绝对或相对路径。如。ffi.load("./liblibrary.so")
.
我读到LUA_PATH
和LUA_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文件