【问题标题】:no such file to load -- ffi_c (LoadError)没有要加载的文件 - ffi_c (LoadError)
【发布时间】:2011-12-19 08:52:56
【问题描述】:

这个问题困扰了我好几天...每当我使用 .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)

【问题讨论】:

  • 0) 适用于我的 ruby​​ 1.9.2 和 Watir 2.0.3 1) 你使用的是什么版本的 Watir。 2)我们需要更多的错误。指示文件中的第 36 行正在使用传递给该方法的参数,需要查看在哪里调用了该行。 3) 你能从命令行做'Gem List'并将该信息添加到你的问题中吗?
  • 感谢您提供附加信息,但更多的是我想看到的实际错误,我已经去看了 custom_require 文件..
  • stackoverflow.com/q/65000467/12544391 的可能重复项,例如将gem "ffi" 添加到Gemfile 修复它

标签: ruby watir


【解决方案1】:

我认为丢失的文件与 FFI gem 有关。我自己尝试使用 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',您可以从 ruby​​installer 站点上的 downloads page 获取它

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

gem install ffi

获取最新版本的 FFI gem

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

【讨论】:

  • 确实你是对的。这解决了问题。感谢您的帮助。
  • 非常感谢。有同样的问题,找到了这个,它也解决了我的问题。
  • FFI被bundle使用,那么如何告诉bundle,我后来的(1.9.6)FFI实例在哪里?当我捆绑安装时,后来的 FFI (1.9.6) 被旧的 (1.9.3) 取代,这不起作用。
  • 在尝试按照上述步骤安装 ffi 版本 1.0.9 后,我遇到了下一个错误,它说;获取:ffi-1.0.9.gem (100%) 错误:安装 ffi 时出错:“ffi”本机 gem 需要安装构建工具。请更新您的 PATH 以包含构建工具或从“rubyinstaller.org/downloads”下载 DevKit,并按照“github.com/oneclick/rubyinstaller/wiki/Development-Kit”处的说明进行操作
  • 所以我还不能在 ffi 之后安装 ffi 的 1.0.9 版本。
【解决方案2】:

gem install ffi --pre

上面的命令在windows下对我有用

【讨论】:

    猜你喜欢
    • 2014-01-16
    • 2011-02-23
    • 2013-12-14
    • 2011-11-30
    • 2016-05-09
    • 2023-03-03
    • 2014-04-15
    • 2013-01-31
    相关资源
    最近更新 更多