我需要使用来自MacRuby (红宝石-钥匙链)的宝石,这个宝石使用FFI。
但看起来FFI并不能在MacRuby上发挥作用。
使用irb控制台,它工作得很好:
cobalt:~ charbon$ irb
irb(main):001:0> require 'ffi'
=> true
irb(main):002:0> module MyLib
irb(main):003:1> extend FFI::Library
irb(main):004:1> ffi_lib 'c'
irb(main):005:1> attach_function :puts, [ :string ], :int
irb(main):006:1> end
=> #<FFI::Function address=0x007fff8be0197b>
irb(main):007:0> MyLib.puts 'Hello, World using libc!'
Hello, World using libc!但是,一旦我切换到macirb控制台(Macruby提供的控制台),它就失败了。
cobalt:~ charbon$ macirb
irb(main):001:0> require 'ffi'
=> true
irb(main):002:0>
=> nil
irb(main):003:0> module MyLib
irb(main):004:1> extend FFI::Library
irb(main):005:1> ffi_lib 'c'
irb(main):006:1> attach_function :puts, [ :string ], :int
irb(main):007:0> end
NoMethodError: undefined method `ffi_lib' for MyLib:Class创业板FFI安装在系统上。
cobalt:~ charbon$ macgem list
*** LOCAL GEMS ***
corefoundation (0.1.4)
ffi (1.9.0)
ruby-keychain (0.1.1)我已经尽我所能了。
希望有人能帮忙!我正在使用os X 10.8.3,ruby 1.9.3,macruby 1.9.2
发布于 2013-08-27 01:23:53
试一试phidgets_native宝石-没有FFI要求,它在OSX上运行良好(实际上它是在它上开发的)。它更新,更快,更稳定。(加上它支持手臂)
https://stackoverflow.com/questions/17875362
复制相似问题