2013-06-12 74 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'包,謝謝! –

相關問題