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 - 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-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-g++ -I.x-g++ -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]: ディレクトリを離れ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:inています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' from 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' from 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' from 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

基本的に、これらすべてのエラーに対する答えは、正確に正しいバージョンの QT と mingw ツールセットに含まれる正しいバージョンの g++ コンパイラーに応じて、Windows にインストールする capybara-webkit のバージョンを使用することです。正しいバージョンをインストールし、正しい bin ディレクトリを Windows パスに追加する必要があります。

RbConfig::CONFIG['host_os']さらに、 Windows 8 では「mingw32」ではなく「mswin32」を返すという問題があります。そのため、capybara_webkit_builder.rb と spec_helper.rb を次のように修正する必要があります/mingw32|mswin32/。これを行わないと、Windows では動作しない macx-g++ が実行されます。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 での最後の手順では、gem ディレクトリに「cd」してから実行する必要があります。

bundle exec gem install capybara-webkit-0.12.1.gem

またはあなたが構築したバージョン。

したがって、答えは、各依存関係のすべての適切なバージョンを取得し、バグを修正し、Windows パス変数が g++ コンパイラの適切なバージョンを指していることを確認し (パス変数を変更した後に cmd を再起動することを忘れないでください)、次にコマンドを実行するときは、正しいディレクトリにいることを確認してください。

于 2013-09-13T09:42:09.140 に答える