ОШИБКА проекта: Неизвестный модуль в QT: webkitwidgets

Я переношу код с qt4 на qt5. Я добавил следующую строку в мой файл .pro, как было предложено:

QT += webkitwidgets

Однако, когда я запускаю qmake, я получаю эту ошибку:

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

Я разрабатываю Ubuntu 12.04 LTS и устанавливаю Qt как описано.

Ответ 1

Вам необходимо установить библиотеку webkitwidgets.

В Ubuntu попробуйте это в терминале:

sudo apt-get install libqt5webkit5-dev

Ответ 2

Если вам нужно установить библиотеку webkit * Windows для Qt 5.7, вы должны скомпилировать ее вручную, потому что в новой версии webkit (WebView?) заменяется WebEngine.

Читайте о выпуске Qt 5.7 (комментарии): http://blog.qt.io/blog/2016/06/16/qt-5-7-released/

Строка сборки (статическая или общая):

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-подобный shell с инструментами), mingw-w64 (bin + dev) для сборки Qt с QtWebKit, см. ссылку на: https://trac.webkit.org/wiki/BuildingQtOnWindows

3) После загрузки источника ICU в C:\icu\icu. Откройте консольную консоль MSys QT через открытое меню "Пуск" (msys необходимо загрузить и установить) и выполнить поиск или использовать быстрый поиск. В открывшейся консоли запустите configure script, а затем выполните компиляцию и установку:

$cd C:\icu\icu\source

$./runConfigureICU

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

$make.exe

$make.exe install

4) Создайте Qt с поддержкой (!) ICU (установите "-icu" для настройки) см. компиляцию script ниже. Измените PATH на свою среду.

Структура каталогов:

  • C:\Qt\5.7.0 - загрузите двоичную версию Qt 5.7.0 здесь
  • C:\Qt\5.7.0n - каталог для новой (скомпилированной) версии 5.7.0 (просто сделать dir)
  • 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

Запустить команду в exmaple в Windows Power Shell:

$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. Используйте compile script ниже, чтобы скомпилировать qtwebkit, используя новую сборку Qt 5.7.0 с файлами в C:\Qt\5.7.0n с ICU.

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 ДЛЯ STATIC

Отредактируйте файл 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 также может уведомить вас о необходимости "ICU" при настройке в qtwebkit.

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

В этом случае вы должны использовать правильную версию Flex, которая является "win_flex". Вы должны переименовать файлы, чтобы использовать win_flex вместо flex (и bison).

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 ...

Вы должны загрузить правую библиотечную арку (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

Ответ 3

Я получил его для работы, скопировав файлы webkit и webkitwidgets pri из предыдущей установки, 5.5.

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

Ответ 4

Для окон я просто загрузил https://github.com/annulen/webkit/releases/tag/qtwebkit-tp5 и скопировал папки в соответствующую папку установки Qt. Теперь я могу использовать MinGW Qt5.8 с последним webkit. Спасибо Константину и всем участникам этого проекта!

Только одно замечание - мне нужно было использовать конфигурацию выпуска в Qt.