2013-06-12 25 views
17

我想用qt5的QtWebKitcapybara-webkit我可以在capybara-webkit上使用自制软件qt5吗?

brew uninstall qt 
Uninstalling /usr/local/Cellar/qt/4.8.4... 
brew install qt5 
This formula is keg-only: so it was not symlinked into /usr/local. 
    /usr/local/Cellar/qt5/5.0.2: 3103 files, 140M, built in 60.9 minutes 

如果我强迫BREW创造QT5我可以建立capybara-webkit原生扩展的符号链接..

brew link --force qt5 
Linking /usr/local/Cellar/qt5/5.0.2... 122 symlinks created 
gem install capybara-webkit -v '1.0.0' 
Successfully installed capybara-webkit-1.0.0 

..但webkit_server崩溃硬..

bundle exec rake test:integration 
Errno::EADDRNOTAVAIL: Can't assign requested address - connect(2) 
dyld: Library not loaded: /private/tmp/qt5-KytU/qt-everywhere-opensource-src-5.0.2/qtwebkit/lib/QtWebKit.framework/Versions/5/QtWebKit 
    Referenced from: /usr/local/opt/qt5/lib/QtWebKitWidgets.framework/Versions/5/QtWebKitWidgets 
    Reason: image not found 

full osx crash report

我试着用LDFLAGSCPPFLAGS安装水豚webkit,但webkit_server仍然很难崩溃。

env LDFLAGS=-L/usr/local/opt/qt5/lib \ 
    CPPFLAGS=-I/usr/local/opt/qt5/include \ 
    gem install capybara-webkit -v '1.0.0' 
+0

你最终解决了这个问题吗? – dgilperez

+0

Nah,我刚放弃并继续使用qt4。我并不需要qt5的任何功能。 –

回答

7

两年后,现在我的问题的相同步骤现在工作。谢谢,无论谁修正它。

gem uninstall --all capybara-webkit 
brew remove qt 
brew install qt5 
brew linkapps qt5 # optional? 
brew link --force qt5 
gem install capybara-webkit 

安装QT5后,我再也看不到这个消息是从我的测试套件:

WARNING: The next major version of capybara-webkit will require at least version 5.0 of Qt. 

卸载capybara宝石是没有必要的(如其他答案建议),因为它没有原生扩展,从而没有直接依赖QT。

+0

我可以确认'brew linkapps qt5'没有必要 – Sid

0

我建议brew updatebrew remove qt5brew install qt5,因为我发现我的系统上,即:

xcrun otool -L /usr/local/Cellar/qt5/5.0.2/lib/QtWebKitWidgets.framework/Versions/5/QtWebKitWidgets 
[snip] 
/usr/local/Cellar/qt5/5.0.2/src/qtwebkit/lib/QtWebKit.framework/Versions/5/QtWebKit (compatibility version 5.0.0, current version 5.0.2) 

所以QT5确实对QtWebKit的链接,该链接是否有效我的系统相比于你。 因此建议重新安装。如果自制程序安装了预制瓶并仍然存在此问题,请在github上报告Homebrew的问题跟踪器。我从源头安装我的。

但是,我猜上游问题(小问题)是链接指向src,应该可能是lib。但是这要由Qt来解决。

+1

谢谢,我会尝试重新安装,看看'otool'输出的变化。我还没有时间。 QT需要10年时间来编译.. –

+0

@JaredBeck - 2015年阅读本文,它仍然是正确的。你的评论也让我大笑。 – flanger001

+0

@ flanger001是的,它只是两年,仍然是八年编译去); –

27

NOTE: IAmNaN here... this answer worked find for El Cap and Yosemite but it is no longer relevant as of MacOS Sierra. Instead follow the instructions from Thoughtbot . To summarize...

  1. Download and install a new Qt from here .
  2. Edit ~/Qt5.5.1/5.5/clang_64/mkspecs/features/mac/default_pre.prf .
  3. Around line 15 find and replace -find xcrun 2 with -find xcodebuild 2 .
  4. Save and run PATH=~/Qt5.5.1/5.5/clang_64/bin:$PATH gem install capybara-webkit

Now back to our regularly scheduled answer....

我得到这个OSX优胜美地的工作。针对Qt5构建的原因是为了避免在某些情况下使用字体和样式表资产的情况下,使用Qt4中的某些修补程序阻止capybara-webkit。

从您的gemfile注释掉水豚和capybara-webkit gems。然后:

bundle 
gem uninstall capybara-webkit 
gem uninstall capybara # if it complains about dependencies 'gem uninstall' them first 
brew remove qt 
brew remove qt5 # if you've been playing around 

从一个干净的环境(重新启动终端):

brew tap homebrew/versions 
brew install qt55 
brew linkapps qt55 
brew link --force qt55 

取消注释水豚和水豚,WebKit的在Gemfile中,然后:

bundle install 

注意:您可以安全地忽略由brew doctor发出的“brew unlink”警告。

+1

关于'brew link --force qt5'我得到了“错误:无法符号链接lib/cmake/Qt5 /usr/local/lib/cmake不可写。“所以我“sudo chown [我的用户]/usr/local/lib/cmake” - 'brew link --force qt5'工作,捆绑工作,并重置该目录的所有权 –

+4

请注意(正如官方capybara-webkit安装说明在这里:https://github.com/thoughtbot/capybara-webkit/wiki/Installing-Qt-and-compiling-capybara-webkit)** qt5将不包括从版本5.6开始的QtWebKit **,因此** qt 5.5是由gem支持的最后一个版本**。这意味着您应该为每个上述安装/链接命令替换'qt5'和'qt55'。 – Dschee

+0

我已经更新了答案。谢谢你在三年@Dschee之后帮助保持这个答案。 – IAmNaN

4

根据https://github.com/thoughtbot/capybara-webkit/issues/885,QT在5.6版停止使用webkit。但是,有一个qt55 brew可用,所以在上面的答案中使用qt55(而不是qt5)。

+0

不适用于我2013年的问题,但仍然有用。我不知道'qt55'包,谢谢! –

相关问题