Ошибка проекта: неизвестные модули в QT: webkitwidgets

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

QT += webkitwidgets

Тем не менее, когда я бегу qmakeЯ получаю эту ошибку:

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

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

5 ответов

Решение

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

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

sudo apt-get install libqt5webkit5-dev

Если вам нужно установить библиотеку Windows Webkit * для 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 как оболочка с инструментами), mingw-w64 (bin+dev) для сборки Qt с помощью QtWebKit, см. Ссылку на: https://trac.webkit.org/wiki/BuildingQtOnWindows

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

$ cd C: \ icu \ icu \ source

$./runConfigureICU

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

$ make.exe

$ make.exe установить

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

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

  • 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 установить

Qt должен начать установку

5) Загрузите исходники Qtwebkit в C:\Qt\Src\qtwebkit. Используйте приведенный ниже скрипт компиляции, чтобы скомпилировать 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 установить

После успешной компиляции и установки должно быть возможно скомпилировать ваше приложение с помощью 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. Он также может уведомить вас о "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

например, как: https://trac.webkit.org/wiki/BuildingQtOnWindows ICU

сборка с GNU: https://wiki.qt.io/Compiling-ICU-with-MinGW

Сборки сообщества, на которые ссылается Алекс, доступны только до Qt 5.9. Если вы хотите использовать более новый Qt5 (текущая версия 5.11), тогда другой вариант - перенести "QtWebKit" в "QtWebEngine".

Смотрите: https://wiki.qt.io/QtWebEngine/Porting_from_QtWebKit

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

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

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

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

Для меня работает комбинация двух ответов, я использовал то, что предложил @user1251007 + эту команду

sudo apt-get install libqt5websockets5-dev

найдите здесь эту командную строку: ссылка на ответ stackru

Другие вопросы по тегам