FFI::NotFoundError: Function '_get_errno' not found in [msvcrt.dll]解决办法

案例:

require 'watir'后,第一次执行 ie=Watir::IE.new报错如下:

C:\>irb
irb(main):001:0> require 'watir'
=> true
irb(main):002:0> ie=Watir::IE.new
FFI::NotFoundError: Function '_get_errno' not found in [msvcrt.dll]
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/ffi-1.1.5-x86-mingw32/lib/ffi/library.rb:249:in `attach_function'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/win32-process-0.7.0/lib/win32/process/functions.rb:12:in `attach_pfunc'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/win32-process-0.7.0/lib/win32/process/functions.rb:64:in `<module:Functions>'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/win32-process-0.7.0/lib/win32/process/functions.rb:8:in `<top (required)>'
        from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/win32-process-0.7.0/lib/win32/process.rb:1:in `<top (required)>'
        from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-1.6.5/lib/watir/ie-process.rb:1:in `<top (required)>'
        from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-1.6.5/lib/watir/ie.rb:45:in `<top (required)>'
        from (irb):2
        from C:/Ruby192/bin/irb:12:in `<main>'
继续第二次执行 ie=Watir::IE.new,却可以。如下:


C:\>irb
irb(main):001:0> require 'watir'
=> true
irb(main):002:0> ie=Watir::IE.new
FFI::NotFoundError: Function '_get_errno' not found in [msvcrt.dll]
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/ffi-1.1.5-x86-mingw32/lib/ffi/library.rb:249:in `attach_function'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/win32-process-0.7.0/lib/win32/process/functions.rb:12:in `attach_pfunc'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/win32-process-0.7.0/lib/win32/process/functions.rb:64:in `<module:Functions>'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/win32-process-0.7.0/lib/win32/process/functions.rb:8:in `<top (required)>'
        from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/win32-process-0.7.0/lib/win32/process.rb:1:in `<top (required)>'
        from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-1.6.5/lib/watir/ie-process.rb:1:in `<top (required)>'
        from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby192/lib/ruby/gems/1.9.1/gems/watir-1.6.5/lib/watir/ie.rb:45:in `<top (required)>'
        from (irb):2
        from C:/Ruby192/bin/irb:12:in `<main>'
irb(main):003:0> ie=Watir::IE.new
=> #<Watir::IE:0x15d5138>
irb(main):004:0> exit

 

解决办法:

把win32-process版本降级,如下:


C:\>gem uninstall win32-process

You have requested to uninstall the gem:
        win32-process-0.7.0
watir-1.6.5 depends on [win32-process (>= 0.5.5)]
If you remove this gems, one or more dependencies will not be met.
Continue with Uninstall? [Yn]  y
Successfully uninstalled win32-process-0.7.0

C:\>gem install win32-process -v 0.6.6
Fetching: win32-process-0.6.6.gem (100%)
Successfully installed win32-process-0.6.6
1 gem installed
Installing ri documentation for win32-process-0.6.6...
Installing RDoc documentation for win32-process-0.6.6...

C:\>gem list

*** LOCAL GEMS ***

activesupport (3.2.8)
builder (3.1.4)
commonwatir (1.6.5)
ffi (1.1.5 x86-mingw32)
firewatir (1.6.5)
hoe (3.1.0)
i18n (0.6.1)
minitest (1.6.0)
multi_json (1.3.6)
nokogiri (1.5.5 x86-mingw32)
rake (0.8.7)
rdoc (2.5.8)
s4t-utils (1.0.4)
user-choices (1.1.6.1)
watir (1.6.5)
win32-api (1.4.8 x86-mingw32)
win32-process (0.6.6)
windows-api (0.4.2)
windows-pr (1.2.2)
xml-simple (1.1.2)

C:\>irb
irb(main):001:0> require 'watir'
=> true
irb(main):002:0> ie=Watir::IE.new
=> #<Watir::IE:0x30ad9fc4 url="about:blank" title="">
irb(main):003:0>

 

ok,问题解决。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值