1

我是新手。我正在尝试在窗口 7 上使用本机扩展构建 capybara-webkit (0.8.0)。我已经安装了(路径集):RubyMine、Ruby SDK 和 Gems、Rails、DevKit、Qt、gmake、g++。但我仍然收到以下错误消息。任何帮助是极大的赞赏。

$ gem install capybara-webkit -v '0.8.0' 临时增强 PATH 以包含 DevKit... 构建原生扩展。这可能需要一段时间... 错误:安装 capybara-webkit 时出错:错误:无法构建 gem 原生扩展。

    c:/Ruby193/bin/ruby.exe extconf.rb

c:\Qt\4.8.2\bin\qmake.EXE c:\make\gmake.EXE cd src/ && c:/Qt/4.8.2/bin/qmake.exe c:/Ruby193/lib/ruby/gems /1.9.1/gems/capybara-webkit-0.8.0/src/webkit_server.pro -spec c:/Qt/4.8.2/mkspecs/macx-g++ -o Makef\ile.webkit_server c:\make\gmake. EXE cd src/ && gmake -f Makefile.webkit_server gmake[1]: 进入目录`c:/Ruby193/lib/ruby/gems/1.9.1/gems/capybara-webkit-0.8.0/src' g++ -c -管道 -g -Wall -W -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -Ic:/Qt/4.8.2/mkspecs/macx-g++ -I. -Ic:/Qt/4.8.2/include/QtCore -Ic:/Qt/4.8.2/include/QtNetwork -Ic:/Qt/4.8.2/include/QtGui -Ic:/Qt/4.8.2/include /QtWebKit -Ic:/Qt/4.8.2/include -I. -o RequestedUrl.o RequestedUrl.cpp process_begin: CreateProcess((null), g++ -c -pipe -g -Wall -W -DQT_WEBKIT_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_HAVE_MMX -DQT_HAVE_3DNOW -DQT_HAVE_SSE -DQT_HAVE_MMXEXT -DQT_HAVE_SSE2 -Ic:/Qt/4.8.2/mkspecs/macx-++。-Ic:/Qt/4.8.2/include/QtCore -Ic:/Qt/4.8.2/include/QtNetwork -Ic:/Qt/4.8.2/include/QtGui -Ic:/Qt/4.8.2/include /QtWebKit -Ic:/Qt/4.8.2/include -I. -o RequestedUrl.o Req uestedUrl.cpp, ...) 失败。make (e=2): 系统找不到指定的文件。

gmake[1]: * [RequestedUrl.o] 错误 2 gmake[1]: Leaving directory c:/Ruby193/lib/ruby/gems/1.9.1/gems/capybara-webkit-0.8.0/src' c:/Ruby193/lib/ruby/1.9.1/fileutils.rb:1515:instat': No such file or directory - src/webkit_server (Errno::ENOENT) from c:/Ruby193/lib/ruby/1.9. 1/fileutils.rb:1515:in block in fu_each_src_dest' from c:/Ruby193/lib/ruby/1.9.1/fileutils.rb:1529:infu_each_src_dest0' 来自 c:/Ruby193/lib/ruby/1.9.1/fileutils.rb:1513:in fu_each_src_dest' from c:/Ruby193/lib/ruby/1.9.1/fileutils.rb:395:incp' 来自 c:/Ruby193/lib/ruby/gems/1.9.1/ gems/capybara-webkit-0.8.0/lib/capybara_webkit_builder.rb:33:in build' from c:/Ruby193/lib/ruby/gems/1.9.1/gems/capybara-webkit-0.8.0/lib/capybara_webkit_builder.rb:39:inbuild_all' 来自 extconf.rb:2:in `'

Gem 文件将继续安装在 c:/Ruby193/lib/ruby/gems/1.9.1/gems/capybara-webkit-0.8.0 以供检查。结果记录到 c:/Ruby193/lib/ruby/gems/1.9.1/gems/capybara-webkit-0.8.0/./gem_make.out

4

1 回答 1

0

我遇到了与此类似的错误,以及以下错误:

g++.exe: unrecognized option '-headerpad_max_install_names'

make[1]: Leaving directory /ruby/gems/shared/gems/capybara-webkit-0.12.1/src'

Errno::ENOENT: No such file or directory - C:/JRuby/lib/ruby/gems/shared/gems/capybara-webkit-0.12.1/src/webkit_server

LoadError: no such file to load

No such file or directory - C:/Ruby/capybara-webkit-0.12.1/src/webkit_server

基本上,所有这些错误的答案与您在 Windows 上安装的 capybara-webkit 版本有关,具体取决于 QT 的正确版本,以及 mingw 工具集中包含的 g++ 编译器的正确版本。必须安装正确的版本并将正确的 bin 目录添加到您的 Windows 路径中。

另外,RbConfig::CONFIG['host_os']在 Windows 8 上返回“mswin32”而不是“mingw32”存在一些问题。因此,您必须将 capybara_webkit_builder.rb 和 spec_helper.rb 修复为以下内容:/mingw32|mswin32/. 如果你不这样做,那么你将运行 macx-g++,它不能在 Windows 上运行。您必须在 Windows 上运行 win32-g++。

如果您使用的是 JRuby,则RUBY_PLATFORM设置为“java”。因此,您必须将相应的 capybara_webkit_builder.rb 和 connection.rb 更改为/mingw32|java/. 如果您不这样做,那么二进制文件将编译(但连接中存在错误)但编译器将因找不到 webkit-server 错误而崩溃。

您必须遵循https://github.com/thoughtbot/capybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit上的安装脚本

在 Windows 上的最后一条指令中,您必须“cd”到 gem 目录,然后运行

bundle exec gem install capybara-webkit-0.12.1.gem

或您构建的任何版本。

因此,答案是获取每个依赖项的所有正确版本,修复错误,确保 windows 路径变量指向正确版本的 g++ 编译器(更改路径变量后不要忘记重新启动 cmd),然后确保您在运行命令时位于正确的目录中。

于 2013-09-13T09:42:09.140 回答