2012-07-14 45 views
1

我是一個新手。我試圖在窗口7上使用原生擴展來構建capybara-webkit(0.8.0)。我已經安裝了(路徑集):RubyMine,Ruby SDK和Gems,Rails,DevKit,Qt,gmake,g ++。但我仍然收到以下錯誤消息。任何幫助是極大的讚賞。capybara-webkit(0.8.0)未能建立在窗口7

$ 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:\使\ 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:\使\ 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_HAV E_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的((空),克++ -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 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 STAT':沒有這樣的文件或目錄 - 從C的src/webkit_server(錯誤:: ENOENT) :/Ruby193/lib/ruby/1.9.1/fileutils.rb:1515:在block in fu_each_src_dest' from c:/Ruby193/lib/ruby/1.9.1/fileutils.rb:1529:in fu_each_src_dest0' from c:/Ruby193/lib/ruby/1.9.1/fileutils.rb:1513:在fu_each_src_dest' from c:/Ruby193/lib/ruby/1.9.1/fileutils.rb:395:in cp' from c :/Ruby193/lib/ruby/gems/1.9.1/gems/capybara-webkit-0.8.0/lib/capybara_webkit_builder.rb:33:在build' from c:/Ruby193/lib/ruby/gems/1.9.1/gems/capybara-webkit-0.8.0/lib/capybara_webkit_builder.rb:39:in build_all ' 從extconf.rb:2:在`'

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的結果。出

回答

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服務器錯誤。

你必須遵循在https://github.com/thoughtbot/capybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit

安裝腳本在Windows上的最後的指令,你要「光盤」到創業板上市的目錄,然後運行你已經建立

bundle exec gem install capybara-webkit-0.12.1.gem 

或任何版本。

因此,答案是得到每個依賴項的所有正確版本,修復錯誤,確保windows路徑變量指向正確版本的g ++編譯器(不要忘記在更改路徑後重新啓動cmd變量),然後確保您在運行命令時位於正確的目錄中。