Ошибка проекта: неизвестные модули в 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