Lua loading .dylib: "Symbol not found", although it exists

我在 macOS(版本为 10.12.6,clang-802.0.42) 上有一个 libSoapySDR.dylib 库,我想使用 LuaJIT FFI 进行加载。

该库编译和链接都没有问题,并可以在没有错误的情况下生成 .dylib 文件。

但是,当我使用 ffi.load('libSoapySDR.dylib') 时,我会收到以下错误消息:

dyld: lazy symbol binding failed: Symbol not found: __Z10getEnvImplPKc
  Referenced from: libSoapySDR.dylib
  Expected in: flat namespace

dyld: Symbol not found: __Z10getEnvImplPKc
  Referenced from: libSoapySDR.dylib
  Expected in: flat namespace

有趣的是:

因此,它似乎在 _那里_,但 ffi.load() 仍然失败,声称它不存在。

有人能解释一下发生了什么吗?

由于这不是我的代码库,我不确定我是否完全理解情况(也不确定我是否有资格提交补丁)。

点赞