我可以使用homebrew的qt5和capybara-webkit吗?

Jar*_*eck 19 homebrew qt qtwebkit capybara-webkit

我想用QT5的QtWebKitcapybara-webkit.

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
Run Code Online (Sandbox Code Playgroud)

如果我强制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
Run Code Online (Sandbox Code Playgroud)

..但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
Run Code Online (Sandbox Code Playgroud)

查看完整的osx崩溃报告.

我尝试安装水豚,WebKit的有LDFLAGSCPPFLAGS,但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'
Run Code Online (Sandbox Code Playgroud)

IAm*_*NaN 28

注意: IAmNaN在这里......这个答案适用于El Cap和Yosemite,但它与MacOS Sierra不再相关.而是按照Thoughtbot的说明进行操作.总结一下......

  1. 从这里下载并安装新的Qt.
  2. 编辑~/Qt5.5.1/5.5/clang_64/mkspecs/features/mac/default_pre.prf.
  3. 大约15行查找和替换-find xcrun 2使用-find xcodebuild 2.
  4. 保存并运行 PATH=~/Qt5.5.1/5.5/clang_64/bin:$PATH gem install capybara-webkit

现在回到我们定期安排的答案....

我让这个在OSX Yosemite上工作.构建Qt5的原因是为了获得一些不在Qt4中的修复,这些修复阻止了capybara-webkit在某些情况下使用字体和样式表资产.

从gemfile中注释掉capybara和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
Run Code Online (Sandbox Code Playgroud)

从干净的环境(重启终端):

brew tap homebrew/versions
brew install qt55
brew linkapps qt55
brew link --force qt55
Run Code Online (Sandbox Code Playgroud)

在gemfile中取消注释capybara和capybara-webkit,然后:

bundle install
Run Code Online (Sandbox Code Playgroud)

注意:您可以放心地忽略由此发出的"brew unlink"警告brew doctor.

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

Jar*_*eck 7

两年后,我的问题中的相同步骤现在起作用.谢谢,无论谁修复它.

gem uninstall --all capybara-webkit
brew remove qt
brew install qt5
brew linkapps qt5 # optional?
brew link --force qt5
gem install capybara-webkit
Run Code Online (Sandbox Code Playgroud)

安装qt5后,我不再从我的测试套件中看到此消息:

WARNING: The next major version of capybara-webkit will require at least version 5.0 of Qt.
Run Code Online (Sandbox Code Playgroud)

卸载capybaragem不是必需的(正如其他答案所示),因为它没有本机扩展,因此没有直接依赖于QT.