rubygems - 为 capybara-webkit 构建 native 扩展时出错

标签 rubygems gem capybara capybara-webkit

我正在尝试在 Windows 上为 capybara 安装 webkit 驱动程序,但出现以下错误:

$ gem install capybara-webkit-0.12.1.gem
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
ERROR:  Error installing capybara-webkit-0.12.1.gem:
        ERROR: Failed to build gem native extension.

        c:/RailsInstaller/Ruby1.9.3/bin/ruby.exe extconf.rb


Gem files will remain installed in c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/capybara-webkit-0.12.1 for inspection.
Results logged to c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/capybara-webkit-0.12.1/./gem_make.out

这是日志文件中的内容:
C:\>cat c:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/capybara-webkit-0.12.1/./gem_make.out
c:/RailsInstaller/Ruby1.9.3/bin/ruby.exe extconf.rb

我已经尝试了一段时间来找出问题所在。日志文件不是很有帮助,我发现的类似问题的解决方案要么特定于 Unix,要么对我不起作用。我很感激你能给我的任何帮助。

注意:此问题已交叉发布到 capybara-webkit Google group.

更新:我尝试根据 Joe Ferris 在 the capybara-webkit Google Group 上的推荐手动构建 gem。 ,并设法获得有关导致构建失败的原因的更详细信息。这是我在执行 bundle exec rake build 时得到的消息在 capybara-webkit 的目录中:
cd src/ && c:/Qt/4.8.3/bin/qmake.exe "c:/Documents and Settings/user/My Documents/Workspace/thoughtbot-capybara-webkit-7289a8e/src/webkit_server.pro" -spec c:/Qt/4.8.3/mkspecs/win32-g++ -o Makefile.webkit_server
'.' is not recognized as an internal or external command,
operable program or batch file.
'.' is not recognized as an internal or external command,
operable program or batch file.
capybara-webkit 0.12.0 built to pkg/capybara-webkit-0.12.0.gem
cd src/ && make -f Makefile.webkit_server 
make[1]: Entering directory `/c/Documents and Settings/user/My Documents/Workspace/thoughtbot-capybara-webkit-7289a8e/src'
make -f Makefile.webkit_server.Release
make[2]: Entering directory `/c/Documents and Settings/user/My Documents/Workspace/thoughtbot-capybara-webkit-7289a8e/src'
bin/rcc.exe -name webkit_server webkit_server.qrc -o release/qrc_webkit_server.cpp
make[2]: bin/rcc.exe: Command not found
make[2]: *** [release/qrc_webkit_server.cpp] Error 127
make[2]: Leaving directory `/c/Documents and Settings/user/My Documents/Workspace/thoughtbot-capybara-webkit-7289a8e/src'
make[1]: *** [release] Error 2
make[1]: Leaving directory `/c/Documents and Settings/user/My Documents/Workspace/thoughtbot-capybara-webkit-7289a8e/src'
make: *** [sub-src-webkit_server-pro-make_default-ordered] Error 2
Command 'make' failed

其他可能相关的信息:
C:\>which make --all
C:\RailsInstaller\DevKit\bin\make.EXE
C:\Qt\4.8.3\bin\make.BAT
C:\Program Files\Gow\bin\make.EXE
C:\>which rcc
C:\Qt\4.8.3\bin\rcc.EXE
C:\>which g++
C:\RailsInstaller\DevKit\mingw\bin\g++.EXE

还有我的路径:
C:\PROGRA~1\Serena\vm\win32\bin;
C:\PROGRA~1\Serena\vm\common\bin\win32;
C:\WINDOWS\system32;
C:\WINDOWS;
C:\WINDOWS\System32\Wbem;
C:\Program Files\ATI Technologies\ATI.ACE\;
C:\Program Files\Microsoft SQL Server\80\Tools\Binn\;
C:\WINDOWS\system32\WindowsPowerShell\v1.0;
C:\Program Files\TortoiseSVN\bin;
C:\RailsInstaller\Ruby1.9.3\bin;
C:\RailsInstaller\Ruby1.9.3\lib\ruby\gems\1.9.1\bin;
C:\RailsInstaller\DevKit\bin;
C:\RailsInstaller\Git\cmd;
C:\Program Files\ansi153\x86;
C:\bin;
C:\RailsInstaller\DevKit\mingw\bin;
C:\Qt\4.8.3\bin;
C:\Program Files\Nodejs;
C:\Documents and Settings\user\Desktop\emacs-23.4\bin;
C:\Python27;
C:\Python27\Scripts;
C:\Program Files\GnuWin32\bin;
C:\Program Files\Gow\bin;
C:\Program Files\Notepad++;
C:\Documents and Settings\user\Application Data\npm\ 

最佳答案

我在这里找到了解决方案:
https://bugreports.qt-project.org/browse/QTBUG-27237

下面这个具体workaround让它在我的电脑上工作。

这似乎是版本 4.8.3 特有的错误,其中 rcc.exe 路径未正确找到。

此外,在此之后您可能会遇到与我相同的错误:
原来qmake把webkit服务器编译成\capybara-webkit-0.12.1\src\release。
而 capybara-webkit builder 期望从“debug”文件夹中得到这个 exe,见 capybara_webkit_builder.rb 的第 57 行

我 fork 了 git 存储库并将此源文件更改为依赖于“release”文件夹,并且可以正常工作!

尽管如此,我还是采用了 2 个非常糟糕的解决方法才能使其正常工作......也许按照 capybara-webkit 安装过程中的建议,使用 QT 4.7.X 进行安装会更直接。
我应该测试一下。

关于rubygems - 为 capybara-webkit 构建 native 扩展时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12936623/

相关文章:

ruby-on-rails - Rails Mailer gem,使用表单向用户发送消息

ruby-on-rails - ubuntu linux,新的终端窗口无法识别已安装的 gem

ruby - i18n Assets 管理/翻译 UI

ruby-on-rails - Vue 在 Capybara 测试中没有渲染

ruby-on-rails - 如何使用 Cucumber-Capybara 断言 flash 变量为零?

ruby - 在 Ruby 1.9.3 中安装 debugger-linecache 时出错

ruby-on-rails - 无法通过 Intuit 应用中心连接到 Quickbooks | Playground

ruby-on-rails - bundle 安装时烦人的 'Network error while fetching'

ruby - npm link 的 Ruby 类似物是什么?

ruby-on-rails - Rspec: capybara 选择不工作