Ответ 1
Вам необходимо установить библиотеку webkitwidgets.
В Ubuntu попробуйте это в терминале:
sudo apt-get install libqt5webkit5-dev
Я переношу код с qt4 на qt5. Я добавил следующую строку в мой файл .pro
, как было предложено:
QT += webkitwidgets
Однако, когда я запускаю qmake
, я получаю эту ошибку:
Project ERROR: Unknown module(s) in QT: webkitwidgets
Я разрабатываю Ubuntu 12.04 LTS и устанавливаю Qt как описано.
Вам необходимо установить библиотеку webkitwidgets.
В Ubuntu попробуйте это в терминале:
sudo apt-get install libqt5webkit5-dev
Если вам нужно установить библиотеку 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\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
Я получил его для работы, скопировав файлы webkit и webkitwidgets pri из предыдущей установки, 5.5.
~/Qt/5.5/clang_64/mkspecs/modules/
Для окон я просто загрузил https://github.com/annulen/webkit/releases/tag/qtwebkit-tp5 и скопировал папки в соответствующую папку установки Qt. Теперь я могу использовать MinGW Qt5.8 с последним webkit. Спасибо Константину и всем участникам этого проекта!
Только одно замечание - мне нужно было использовать конфигурацию выпуска в Qt.