当我尝试安装 capybara-webkit ruby gem 时出现以下错误
Gem::Installer::ExtensionBuildError: 错误:无法构建 gem 原生扩展。
/home/s/.rvm/rubies/ruby-1.8.7-p371/bin/ruby extconf.rb
cd src/ && /usr/lib/x86_64-linux-gnu/qt4/bin/qmake /home/s/.rvm/gems/ruby-1.8.7-
p371@/gems/capybara-webkit-0.14.1/src/webkit_server.pro -spec
/usr/share/qt4/mkspecs/linux-g++ -o Makefile.webkit_server
cd src/ && make -f Makefile.webkit_server
make[1]: Entering directory `/home/s/.rvm/gems/ruby-1.8.7-p371@/gems/capybara- webkit-0.14.1/src'
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB - DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. - I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui - I/usr/include/qt4/QtWebKit -I/usr/include/qt4 -I. -o EnableLogging.o EnableLogging.cpp
g++ -c -pipe -O2 -Wall -W -D_REENTRANT -DQT_NO_DEBUG -DQT_WEBKIT_LIB -DQT_GUI_LIB - DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++ -I. - I/usr/include/qt4/QtCore -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtGui - I/usr/include/qt4/QtWebKit -I/usr/include/qt4 -I. -o Authenticate.o Authenticate.cpp
In file included from Authenticate.cpp:2:0:
WebPage.h:46:17: error: incomplete type ‘QNetworkReply’ used in nested name specifier
WebPage.h:46:17: error: incomplete type ‘QNetworkReply’ used in nested name specifier
WebPage.h:46:45: error: template argument 1 is invalid
make[1]: *** [Authenticate.o] Error 1
make[1]: Leaving directory `/home/s/.rvm/gems/ruby-1.8.7-p371/gems/capybara- webkit-0.14.1/src'
make: *** [sub-src-webkit_server-pro-make_default-ordered] Error 2
Command 'make' failed
我使用 Ubuntu 13.04,并且安装了 libqt4-dev 和 g++。有人知道如何修复它吗?我在 Ubuntu 12.10 上正确安装了它。
答案1
似乎是一个热门话题...https://github.com/thoughtbot/capybara-webkit/issues/513
我自己也遇到过这个问题,并且为此奋斗了大约一周。不过现在似乎正在起作用!问题是我无法缩小范围到我所做的。以下是可能有助于解决此问题的一些事项的列表:
安装缺少的软件包:
sudo apt-get install libqt4-dev libqtwebkit-dev build-essential
如果软件包已经存在,则清除并安装
sudo apt-get purge libqt4-dev libqtwebkit-dev
重新安装 ruby
rvm reinstall 1.9.3
- 打造独特新鲜的宝石套装:https://rvm.io/gemsets/creating
- 从 Gemfile 中删除 cabybara-webkit 的特定版本
- 删除 Gemfile.lock
sudo apt-get update && sudo apt-get upgrade
我认为重新安装 RVM 对我来说是件好事。随着时间的推移,它因各种不同的 Rails 项目和个人 hack 而变得杂乱无章。