ПОМИЛКА проекту: Невідомі модулі в QT: webkitwidgets


76

Я переношу код з qt4 на qt5. Я додав наступний рядок до свого .proфайлу, як було запропоновано :

QT += webkitwidgets

Однак, коли я запускаю qmake, я отримую таку помилку:

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

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

Відповіді:


116

Вам потрібно встановити бібліотеку webkitwidgets.

На Ubuntu спробуйте це в терміналі:

sudo apt-get install libqt5webkit5-dev

10
Чи існує якесь рішення для OS X?
Ionică Bizău

3
Гей, я спробував це, але все одно видає ту саму помилку. Чи є рішення?
Wboy

9
А як щодо Windows?
jjxtra

@Muadh Programmer: У запитанні було зазначено, що потрібне рішення для Ubuntu, тому моя відповідь стосується цієї ОС. Однак інші відповіді стосуються Windows. Якщо у вас є запитання щодо їх вирішення, ви можете прокоментувати їх відповіді.
user1251007

10

Якщо вам потрібно встановити бібліотеку 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 на зразок оболонки з інструментами), mingw-w64 (bin + dev) для побудови Qt за допомогою QtWebKit, див. Посилання на: https://trac.webkit.org/ wiki / BuildingQtOnWindows

3) Після завантаження джерела ICU в C: \ icu \ icu. Відкрийте оболонку консолі mingw msys QT, відкривши меню «Пуск» (потрібно завантажити та встановити msys) та виконайте пошук або скористайтесь швидким пошуком. У відкритій консолі запустіть налаштування сценарію, а потім скомпілюйте та встановіть:

$ cd C: \ icu \ icu \ source

$ ./runConfigureICU

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

$ make.exe

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

4) Створіть Qt за допомогою (!) Підтримки ICU (встановіть "-icu" для налаштування), див. Сценарій компіляції нижче. Змініть PATH на своє оточення.

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

  • 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:

$ 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 і пройдіть через build.

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


Привіт, я застряг у C: \ Qt \ Src \ qtbase \ compile.bat, це не вдається з "C: \ qt5.7-source \ qtbase> jom.exe -j 4 Помилка: Файл Makefile не існує." Чи знаєте ви, в чому може бути проблема?
тонізуючі

1
розробник програми 27, переконайтеся, що попередня команда у файлі bat успішно виконана: "виклик C: \ Qt \ Src \ qtbase \ configure.bat -prefix% BUILD_DIR% -platform% QMAKESPEC% -confirm-license -debug-and- release -opensource -opengl desktop -no-compile-examples -icu -IC: / icu / icu / dist / include -LC: / icu / icu / dist / lib "
Олексій,

Спасибі за вашу відповідь! Тепер, думаю, трохи пішов далі з qtbase \ compile.bat. Ви уявляєте, що може спричинити новітню помилку "Синтаксис команди неправильний."? pastebin.com/pCLXvs22
тонізує

Розробник програми 27, може відрізнятися від версії make до версії Visual Studio, що ви використовуєте для компіляції? Перевірте свій двійковий файл make на шляху проекту та переконайтеся, що він правильний.
Олексій

1
Я ніколи не працював. Але нарешті знайшов цей github.com/annulen/webkit/releases/tag/qtwebkit-tp5, за допомогою якого я можу використовувати новіші webkit та qt 5.8.
тонізуючі

3

Збірки спільноти, на які посилається Алекс, доступні лише до Qt 5.9. Якщо ви хочете використовувати новішу Qt5 (поточна версія - 5.11), то інший варіант - перенести "QtWebKit" на "QtWebEngine".

Див .: https://wiki.qt.io/QtWebEngine/Porting_from_QtWebKit


1

Я змусив це працювати, скопіювавши файли webkit та webkitwidgets pri з попередньої інсталяції, 5.5.

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


1

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

Зазначимо лише одне - мені потрібно було використовувати конфігурацію випуску в Qt.


Чи можете ви сказати, до якої відповідної папки ви вставили ці файли?
taimoor1990

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.