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。
我想知道是否有人可以协助解决已在此处打开的问题:
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。