Ruby FFI 加载 - OSX

Ruby FFI loading - OSX

我想知道是否有人可以协助解决已在此处打开的问题:

https://github.com/technion/ruby-argon2/issues/1

具体来说,我发布了 gem,并且我收到了用户遇到问题的建议。加载我的 gem:

时出现以下错误
LoadError: cannot find 'argon2_wrap' library
from /Users/me/.rvm/gems/ruby-2.2.1/gems/ffi-compiler-0.1.3/lib/ffi-compiler/loader.rb:21:in `find'

我认为这极有可能是一个 OSX 问题,因为我已经尽了最大努力来复制它但没有成功。如果我没有实际编译共享库,该错误基本上显示了我的 Linux 机器上发生的情况。然而,我没有 Mac 可用,因此没有能力对此进行测试。

我真的很想认真地支持这个gem,如果有人能给我一些建议,我将不胜感激。

成功!!! :-(

为什么一脸悲伤?因为这是一个 FFI 问题,我不知道如何解决它。

路径的命名似乎导致 FFI 库在 OS X 上加载失败。

我试过这个:

require 'ffi'
module Hello
    extend FFI::Library
    ffi_lib "Users/USERNAME/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/argon2-0.1.1/ext/argon2_wrap/libargon2_wrap.dylib"
end
 # => FAILS to load library

我将已编译的库复制到我的桌面并使用 FFI 和干净的路径加载它:

require 'ffi'
module Hello
    extend FFI::Library
    ffi_lib "/Users/USERNAME/Desktop/libargon2_wrap.dylib"
end
# => Success, the library loaded

现在我们知道问题出在哪里,我们或许可以帮助解决 FFI 库的问题。

编辑

我会(抱歉地说)尝试将 FFI 移植到 Ruby's core fiddle library. You can see a Fiddle tutorial here