no such file to load — ffi_c (LoadError)

回眸只為那壹抹淺笑 提交于 2019-12-21 07:28:08

问题


This problem is bugging me for a couple of days now... Whenever I'm using the .bring_to_front method

require "rubygems"
require "watir"

browser = Watir::Browser::new
browser.bring_to_front

I get this error:

(...)rubygems/custom_require.rb:36:in `require': no such file to load -- ffi_c (LoadError)

I tried uninstalling and reinstalling ffi/watir/ruby/netbeans without success.

line 36 is in custom_require.rb

def require path
if Gem.unresolved_deps.empty? or Gem.loaded_path? path then
  gem_original_require path
else
  spec = Gem.searcher.find_active path
  unless spec then
    found_specs = Gem.searcher.find_in_unresolved path
    unless found_specs.empty? then
      found_specs = [found_specs.last]
    else
      found_specs = Gem.searcher.find_in_unresolved_tree path
    end
    found_specs.each do |found_spec|
      Gem.activate_spec found_spec
    end
  end
  return gem_original_require path #problem
end

* LOCAL GEMS *

archive-tar-minitar (0.5.2)
builder (3.0.0)
childprocess (0.2.2)
columnize (0.3.4)
commonwatir (2.0.4)
ffi (1.0.10 x86-mingw32)
firewatir (1.9.4, 1.8.1)
hoe (2.12.3, 2.8.0)
json (1.6.1)
json_pure (1.6.1)
linecache19 (0.5.12)
minitest (2.7.0, 2.6.2, 1.6.0)
nokogiri (1.5.0 x86-mingw32)
rake (0.9.2.2, 0.9.2, 0.8.7)
rautomation (0.6.3)
rdiscount (1.6.8)
rdoc (3.11, 2.5.8)
require_all (1.2.0)
ruby-debug-base19 (0.11.25)
ruby-debug-ide (0.4.16, 0.4.9)
ruby_core_source (0.1.5)
rubyzip (0.9.4)
s4t-utils (1.0.4)
selenium-webdriver (2.10.0)
user-choices (1.1.6.1)
watir (2.0.4)
watir-webdriver (0.3.5)
win32-api (1.4.8 x86-mingw32)
win32-process (0.6.5)
windows-api (0.4.0)
windows-pr (1.2.1)
xml-simple (1.1.1, 1.1.0)

回答1:


I think the missing file relates to the FFI gem. I had issues trying to use FFI v1.0.10 myself (when it went to install, and due to something pertaining to webdriver code) so on my box I have v1.0.9 of that gem installed.

I'd say there's not much to lose by trying to roll that gem back a version. From the command line type

gem uninstall ffi

once it's done then

gem install ffi -v 1.0.9

See if that fixes things for you.

Update the FFI gem has since updated past 1.1.0 and these versions seem to work fine with watir and watir-webdriver, however the gem is not pre-compiled, and has to compile code when it installs. This means if you are running on a PC you will need to install the Ruby development kit for windows, aka 'devkit', you can get it from the downloads page on the rubyinstaller site

download and install devkit first, then open a new command line window and use

gem install ffi

to get the latest version of the FFI gem

if for some reason that does not work for you, you can always use the original instructions above to install the slightly older version of the FFI gem




回答2:


gem install ffi --pre

The above command worked for me under windows



来源:https://stackoverflow.com/questions/7964778/no-such-file-to-load-ffi-c-loaderror

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!