没有这样的文件加载 – ffi_c(LoadError)

这个问题现在困扰我几天……每当我使用.bring_to_front方法时

require "rubygems" require "watir" browser = Watir::Browser::new browser.bring_to_front 

我收到此错误:

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

我尝试卸载并重新安装ffi / watir / ruby​​ / netbeans但没有成功。

第36行在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 

*本地gem*

 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) 

我认为丢失的文件与FFIgem有关。 我自己尝试使用FFI v1.0.10时遇到了问题(当它安装时,由于与webdriver代码有关的东西)所以在我的盒子上我安装了那个gem的v1.0.9。

我想说通过尝试将该gem推回版本并没有太多损失。 从命令行类型

 gem uninstall ffi 

一旦它完成了

 gem install ffi -v 1.0.9 

看看是否能为您解决问题。

更新 FFI gem已经更新过1.1.0并且这些版本似乎与watir和watir-webdriver一起使用,但是gem没有预编译,并且必须在安装时编译代码。 这意味着如果您在PC上运行,则需要安装用于Windows的Ruby开发工具包,也就是’devkit’ ,您可以从rubyinstaller站点上的下载页面获取它

首先下载并安装devkit,然后打开一个新的命令行窗口并使用

 gem install ffi 

获得最新版本的FFIgem

如果由于某些原因对你不起作用,你可以随时使用上面的原始说明来安装稍微旧版本的FFIgem

gem install ffi –pre

上面的命令在windows下为我工作