web-dev-qa-db-ja.com

プロジェクトエラー:QTの不明なモジュール:webkitwidgets

コードをqt4からqt5に移植しています。 .proファイルに次の行を追加しました 提案どおり

QT += webkitwidgets

ただし、qmakeを実行すると、次のエラーが表示されます。

Project ERROR: Unknown module(s) in QT: webkitwidgets

Ubuntu 12.04 LTSで開発し、Qtをインストールしました 説明どおり

71
user1251007

Webkitwidgetsライブラリをインストールする必要があります。

Ubuntuでは、ターミナルでこれを試してください。

Sudo apt-get install libqt5webkit5-dev
110
user1251007

Qt 5.7用のwebkit * Windowsライブラリをインストールする必要がある場合、新しいバージョンのwebkit(WebView?)ではWebEngineに置き換えられるため、手動でコンパイルする必要があります。

Qt 5.7リリース(コメント)について読む: http://blog.qt.io/blog/2016/06/16/qt-5-7-released/

ビルドシーケンス(静的OR共有):

1)Qt 5.7.0ソースのダウンロード: http://download.qt.io/community_releases/5.7/5.7.0/

2)必要なツールのダウンロード:ActiveState Perl(バイナリ)、Python(バイナリ)、Ruby(バイナリ)、GnuWin Bison(バイナリ)、GPref(バイナリ) 、Grep(バイナリ)、WinFlex、LibIconv、make(バイナリ)、sqlite(ソース!)、ICU(ソース)、windows msys(バイナリ)(ツールを備えたシェルのようなUnix)、mingw -QtWebKitでQtをビルドするための-w64(bin + dev)、次のリンクを参照してください: https://trac.webkit.org/wiki/BuildingQtOnWindows

3)ダウンロード後ICU source to C:\ icu\icu。スタートウィンドウメニューを開いてmsys QT mingwコンソールシェルを開き(msysをダウンロードしてインストールする必要があります)、検索または高速検索を使用します。コンソール起動設定スクリプトを開き、コンパイルしてインストールします:

$ cd C:\ icu\icu\source

$ ./runConfigureICU

$ set PATH =%PATH%; C:\ msys\1.0\bin \

$ make.exe

$ make.exeインストール

4)(!)ICUサポート(設定するには "-icu"を設定))を使用してQtをビルドします。以下のコンパイルスクリプトを参照してください。

ディレクトリ構造:

  • C:\ Qt\5.7.0-ここからQt 5.7.0のバイナリバージョンをダウンロードします
  • C:\ Qt\5.7.0n-5.7.0の新しい(コンパイル済み)バージョンのディレクトリ(ディレクトリを作成するだけ)
  • C:\ Qt\Src-Qt 5.7.0のソースをここからダウンロード

C:\ Qt\Src\qtbase\compile.bat

set INCLUDE=C:\icu\icu\dist\include
set LIB=C:\icu\icu\dist\lib
set QTDIR=C:\Qt\5.7.0n
set PATH=%PATH%;C:\Qt\Qt5.7.0\5.7\mingw53_32\bin;C:\Qt\Qt5.7.0\Tools\QtCreator\bin;C:\Qt\Qt5.7.0\Tools\mingw530_32\bin;C:\Qt\Src\qtbase\bin;C:\Program Files (X86)\GnuWin32\bin;C:\winflex;C:\Ruby23-x64\bin;C:\Python27;C:\mingw-w64\i686-1\mingw32\bin;C:\icu\bin
set QMAKESPEC=win32-g++
set BUILD_DIR=C:\Qt\Qt5.7.0n
call C:\Qt\Src\qtbase\configure.bat -prefix %BUILD_DIR% -platform %QMAKESPEC% -confirm-license -debug-and-release -opensource -opengl desktop -no-compile-examples -icu -I C:/icu/icu/dist/include -L C:/icu/icu/dist/lib
jom.exe -j 4
pause

Windows Power Shellのexmapleでコマンドを実行します。

$ cd C:\ Qt\Src\qtbase

$ ./compile.bat

コンパイルをパススルーした後、それを使用してBUILD_DIRにファイルをインストールします(Qtファイルをインストールします):

$ C:\ mingw-w64\i686-1\mingw32\bin\mingw32-make.exe install

Qtはインストールを開始する必要があります

5)QtwebkitソースをC:\ Qt\Src\qtwebkitにダウンロードします。以下のコンパイルスクリプトを使用して、ICUでC:\ Qt\5.7.0nのファイルを含む新しいQt 5.7.0ビルドを使用してqtwebkitをコンパイルします。

C:\ Qt\Src\qtwebkit\Tools\Scripts\compile.bat

set INCLUDE=C:\sqlite
set LIBS=C:\sqlite
set SQLITE3SRCDIR=C:\sqlite
set QTDIR=C:\Qt\Qt5.7.0n
set PATH=%PATH%;C:\Qt\Qt5.7.0n\bin;C:\Qt\Src\qtbase\bin;C:\winflex;C:\Ruby23-x64\bin;C:\Python27;C:\mingw-w64\i686-1\mingw32\bin;C:\icu\bin;C:\Program Files (x86)\GnuWin32\bin
set QMAKESPEC=win32-g++
call Perl.exe .\build-webkit --qt --release

Qtwebkitをコンパイルします。

$ cd C:\ Qt\Src\qtwebkit\Tools\Scripts

$ ./compile.bat

$ cd C:\ Qt\Src\qtwebkit\WebKitBuild\Release

$ C:\ mingw-w64\i686-1\mingw32\bin\mingw32-make.exe install

コンパイルとインストールが正常に完了した後、qtwebkitを使用してアプリケーションをコンパイルできるはずです。

静的なQTを構築する

ファイルC:\ Qt\Src\qtbase\compile.batを編集し、ビルドをパススルーします。

...
call C:\Qt\Src\qtbase\configure.bat -prefix %BUILD_DIR% -platform %QMAKESPEC% -confirm-license -debug-and-release -opensource -opengl desktop -static -no-compile-examples -icu
echo "QMAKE_FLAGS += -static -static-libgcc" >> .mkspecs/%QMAKESPEC%/qmake.conf
...

考えられるエラー

1)qtwebkitのビルド中:"fatal error: unicode/uchar.h: No such file or directory"

Qt 5.7.0nがICUでビルドされていることを確認してください。 ITは、qtwebkitの構成時に「ICUが必要」について通知することもできます。

2)flex: unknown flag '-'. For usage, try

この場合、「win_flex」である正しいバージョンのFlexを使用する必要があります。 flex(およびbison)の代わりにwin_flexを使用するようにファイル名を変更する必要があります。

1)C:\ Program Files(x86)\ GnuWin32\bin\flex.exeを未使用の名前に変更します。

2)C:\ Program Files(x86)\ GnuWin32\bin\bison.exeの名前を未使用の名前に変更します。

3)C:\ winflex\win_bison.exeの名前をbison.exeに変更します。

3)qtwebkitのビルド中:"fatal error: sqlite3.h: No such file or directory"

ファイルC:\ Qt\Src\qtwebkit\Tools\Scripts\compile.batを編集し、sqliteへの正しいパスを確認します。

set SQLITE3SRCDIR=C:\(path to some SQLITE .h/source files)

4)skipping incompatible ... when searching for ...

正しいライブラリArch(32ビットまたは64ビット)をダウンロードする必要があります

5)View.cpp ... undefined reference to WKPageCanGoBack

何らかのテストまたはMiniBrowserをパスすると発生する可能性があります。 「UIProcess/API/qt」および「MiniBroswer」のファイルを検索し、Makefileおよび他のいくつかのファイルから削除してから、ビルドを再開できます。

リンク集

ビルドQt5: https://wiki.qt.io/Building_Qt_5_from_Git Qt WebKit build

方法: https://trac.webkit.org/wiki/BuildingQtOnWindows ICU

gNUでビルド: https://wiki.qt.io/Compiling-ICU-with-MinGW

9
Alex

Alexが参照するコミュニティビルドは、Qt 5.9までしか利用できません。新しいQt5(現在のバージョンは5.11)を使用する場合、別のオプションは「QtWebKit」を「QtWebEngine」に移植することです。

参照: https://wiki.qt.io/QtWebEngine/Porting_from_QtWebKit

2
Nightingale7

Windowsの場合、 https://github.com/annulen/webkit/releases/tag/qtwebkit-tp5 をダウンロードして、フォルダーを関連するQtインストールフォルダーにコピーしました。これで、MinGW Qt5.8を最新のWebkitで使用できます。このプロジェクトのコンスタンチンとすべての貢献者に感謝します!

注意すべきことは1つだけです。Qtでリリース構成を使用する必要がありました。

1

以前のインストールである5.5からwebkitおよびwebkitwidgets priファイルをコピーすることで動作するようになりました。

~/Qt/5.5/clang_64/mkspecs/modules/

1
JDavis