Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ruby FFI不在Windows上加载DLL_Ruby_Windows_Dll_Ffi - Fatal编程技术网

ruby FFI不在Windows上加载DLL

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库来进行几何计算。我想在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. (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]