Ruby 没有要加载的文件--ffi_c(LoadError)

Ruby 没有要加载的文件--ffi_c(LoadError),ruby,watir,Ruby,Watir,这个问题困扰了我好几天了。。。每当我使用.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/

这个问题困扰了我好几天了。。。每当我使用.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
*本地宝石*

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)

我认为丢失的文件与FFI gem有关。我自己在尝试使用FFI v1.0.10时遇到了问题(当它安装时,由于与webdriver代码有关的原因),所以在我的机器上安装了该gem的v1.0.9

我要说的是,试着把那块宝石推出一个版本不会有什么损失。从命令行类型

gem uninstall ffi
一旦完成了

gem install ffi -v 1.0.9
看看这是否能帮你解决问题

更新自那以后,FFI gem更新了1.1.0版本,这些版本似乎可以与watir和watir webdriver配合使用,但是gem没有预编译,安装时必须编译代码。这意味着,如果您在PC上运行,则需要安装Ruby windows开发工具包(又名Ruby development kit for windows),您可以从rubyinstaller站点上的获取该工具包

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

gem install ffi
获取最新版本的外国金融机构创业板

如果出于某种原因,这对您不起作用,您可以始终使用上述原始说明安装稍旧版本的FFI gem--pre


上面的命令在windows下适用于我(0)在ruby 1.9.2和Watir 2.0.3中适用于我(1)您使用的是什么版本的Watir。2) 我们需要更多的错误。指示文件中的第36行正在使用传递给该方法的参数,需要查看调用该行的内容。3) 你能从命令行执行“Gem List”并将该信息添加到你的问题中吗?谢谢你添加了额外的信息,但是我想看到的是更多的实际错误,我已经去查看了自定义的\u require文件。确实,你是对的。这就解决了问题。非常感谢你的帮助。发现了同样的问题,也解决了我的问题。bundle使用了FFi,那么如何告诉bundle,我稍后(1.9.6)的FFi实例在哪里?当我捆绑安装时,较新的FFI(1.9.6)被较旧的(1.9.3)所取代,这不起作用;获取:ffi-1.0.9.gem(100%)错误:安装ffi时出错:“ffi”本机gem需要安装的生成工具。请更新您的路径以包含构建工具或从“”下载DevKit,并按照“”处的说明进行操作,以便在ffi之后仍无法安装ffi的1.0.9版。