Проблема заключалась в том, чтобы получить доступ к G-WAN C API РубиМожно ли использовать Ruby-FFI с G-WAN
поэтому я попытался использовать FFI, но Гван не имеет библиотеку, когда я пытался загрузить двоичный файл, он показывает:
/home/asd/.gem/ruby/2.0.0/gems/ffi-1.9.0/lib/ffi/library.rb:123:in `block in ffi_lib': Could not open library '/home/asd/bin/gwan_linux32-bit/gwan': /home/asd/bin/gwan_linux32-bit/gwan: cannot dynamically load executable (LoadError)
from /home/asd/.gem/ruby/2.0.0/gems/ffi-1.9.0/lib/ffi/library.rb:90:in `map'
from /home/asd/.gem/ruby/2.0.0/gems/ffi-1.9.0/lib/ffi/library.rb:90:in `ffi_lib'
from /home/asd/bin/gwan_linux32-bit/127.0.0.1_8081/#127.0.0.1/csp/test.rb:26:in `<module:MyLibrary>'
from /home/asd/bin/gwan_linux32-bit/127.0.0.1_8081/#127.0.0.1/csp/test.rb:24:in `<main>'
потому что, очевидно, это не библиотека, это исполняемый двоичный
сначала я думаю, что я должен сделать C-расширение для рубина доступа G-WAN API, но, чтобы думать об этом, он также потерпел бы неудачу, если у нас нет .o для ссылки (только предоставлено .h), правильно?
так что .. можно ли использовать FFI Ruby для загрузки с .h вместо dll?
как вызвать C/C++ из Ruby: http://stackoverflow.com/questions/1542520/how-can-i-call-c-functions-from-within-ruby (создание расширения C или расширение C++ используя SWIG, используйте FFI или используйте RubyInline) – Kokizzu
как вызвать Ruby из C/C++: http://stackoverflow.com/questions/626333/embedding-a-ruby-interpreter-in-ac-app только обычный код, так как Рубиновая МРТ была сделана с использованием C – Kokizzu
. Это пример RubyInline-way: https://github.com/seattlerb/rubyinline – Kokizzu