ruby FFI不在Windows上加载DLL
我正在编写一个小型的跨平台C库来进行几何计算。我想在ruby中使用这个库,因为它的速度大约是原生ruby的五倍 它在Linux(Fedora 20)上运行良好,但在Windows 8上执行相同操作时,会出现以下错误:ruby FFI不在Windows上加载DLL,ruby,windows,dll,ffi,Ruby,Windows,Dll,Ffi,我正在编写一个小型的跨平台C库来进行几何计算。我想在ruby中使用这个库,因为它的速度大约是原生ruby的五倍 它在Linux(Fedora 20)上运行良好,但在Windows 8上执行相同操作时,会出现以下错误: C:/Ruby193/lib/ruby/gems/1.9.1/gems/ffi-1.9.3-x86-mingw32/lib/ffi/library.rb:133:in `block in ffi_lib': Could not open library 'libgeom': x▒K
C:/Ruby193/lib/ruby/gems/1.9.1/gems/ffi-1.9.3-x86-mingw32/lib/ffi/library.rb:133:in `block in ffi_lib': Could not open library 'libgeom': x▒K. (LoadError) Could not open library 'libgeom.dll':L
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/ffi-1.9.3-x86-mingw32/lib/ffi/library.rb:100:in `map'
from C:/Ruby193/lib/ruby/gems/1.9.1/gems/ffi-1.9.3-x86-mingw32/lib/ffi/library.rb:100:in `ffi_lib'
from C:/rubytest/geom.rb:6:in `<module:Geom>'
from C:/rubytest/geom.rb:1:in `<top (required)>'
from main.rb:2:in `require_relative'
from main.rb:2:in `<main>'
在当前目录中,我有一个共享库(Linux上为libgeom.so,Windows上为libgeom.dll)
我正在使用Cygwin和以下命令编译共享库:
gcc -Wall -shared geom.c -o libgeom.dll
我尝试过为库使用完整的路径,也尝试过将当前目录添加到路径中,但没有任何区别
我使用的是ruby版本:
ruby 1.9.3p545 (2014-02-24) [i386-mingw32]
我是ruby新手,但对Linux上的即时成功感到非常高兴。现在我只想让它也在Windows上工作
你能推荐一些工作吗
这是32位与64位的问题吗?我自己已经解决了:-) 原因是我的ruby版本是32位的,而Cygwin是64位的 我现在已经删除了Cygwin并改为32位Cygwin,现在它可以工作了 也许你可以看看:
ruby 1.9.3p545 (2014-02-24) [i386-mingw32]