问题似乎是在 Linux 中,OpenSSL 包含一个文件 ssl.so,但 Windows OpenSSL 没有等效文件。
我有一个 ruby 程序在 Ubuntu 12.04 上运行良好,但在 Windows 7 上失败并显示以下消息:
C:\Ruby200-x64\code>ruby ssl-bug.rb
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/ffi-1.9.1/lib/ffi/library.rb:154:in `blo
ck in ffi_lib': Could not open library 'ssl': The specified module could not be
(LoadError)
.
Could not open library 'ssl.dll': The specified module could not be found.
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/ffi-1.9.1/lib/ffi/library.r
b:121:in `map'
from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/ffi-1.9.1/lib/ffi/library.r
b:121:in `ffi_lib'
from ssl-bug.rb:5:in `<module:OpenSSL_EC>'
from ssl-bug.rb:3:in `<main>'
这是在 Ubuntu 12.04 上运行良好但不能在 Windows 7 上运行的程序类型的简短示例 (ssl-bug.rb),生成上述错误:
require 'ffi'
module OpenSSL_EC
extend FFI::Library
ffi_lib 'ssl'
end