我想将qt5的QtWebKit
与capybara-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
如果我强制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
我尝试使用LDFLAGS
和CPPFLAGS
安装capybara-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 :(得分:28)
注意: IAmNaN在这里...这个答案适用于El Cap和Yosemite,但它与MacOS Sierra不再相关。而是按照Thoughtbot中的说明操作。总结一下......
- 下载并安装新的Qt from here。
- 修改
~/Qt5.5.1/5.5/clang_64/mkspecs/features/mac/default_pre.prf
。- 在第15行周围找到并将
-find xcrun 2
替换为-find xcodebuild 2
。- 保存并运行
醇>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
从干净的环境(重启终端):
brew tap homebrew/versions
brew install qt55
brew linkapps qt55
brew link --force qt55
在gemfile中取消注释capybara和capybara-webkit,然后:
bundle install
注意:您可以放心地忽略" brew unlink" brew doctor
发出的警告。
答案 1 :(得分: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
gem(正如其他答案所示),因为它没有原生扩展,因此没有直接依赖QT。
答案 2 :(得分:4)
根据https://github.com/thoughtbot/capybara-webkit/issues/885,QT在5.6版停止使用webkit。但是,有一个qt55
brew可用,因此在上面的答案中使用qt55
(而不是qt5
)。
答案 3 :(得分:0)
我建议brew update
,brew remove qt5
和brew 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修复。