web-dev-qa-db-fra.com

ERREUR de projet: module (s) inconnu (s) dans QT: webkitwidgets

Je porte le code de qt4 à qt5. J'ai ajouté la ligne suivante à mon .pro fichier, comme suggéré :

QT += webkitwidgets

Cependant, lorsque je lance qmake, j'obtiens l'erreur suivante:

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

Je développe sur Ubuntu 12.04 LTS et ai installé Qt comme décrit .

71
user1251007

Vous devez installer la bibliothèque webkitwidgets.

Sur Ubuntu, essayez ceci dans un terminal:

Sudo apt-get install libqt5webkit5-dev
110
user1251007

Si vous avez besoin d'installer la bibliothèque Webkit * Windows de Qt 5.7, vous devez la compiler manuellement car, dans la nouvelle version, Webkit (WebView?) A été remplacé par WebEngine.

Lisez à propos de la version 5.7 de Qt (commentaires): http://blog.qt.io/blog/2016/06/16/qt-5-7-released/

Séquence de construction (statique OR partagé):

1) Téléchargez les sources de Qt 5.7.0: http://download.qt.io/community_releases/5.7/5.7.0/

2) Télécharger les outils requis: ActiveState Perl (binaire), Python (binaire), Ruby (binaire), GnuWin Bison (binaire), GPref (binaire) , Grep (binaire), WinFlex, LibIconv, make (binaire), sqlite (source!), ICU (source), windows msys (binaire) (unix comme Shell avec les outils), mingw -w64 (bin + dev) pour construire Qt avec QtWebKit, voir le lien sur: https://trac.webkit.org/wiki/BuildingQtOnWindows

3) Après le téléchargement ICU source dans C:\icu\icu. Ouvrez le console msys QT mingw console en ouvrant le menu Démarrer de Windows (msys doit être téléchargé et installé) et recherchez ou utilisez la recherche rapide. Dans Ouvrez la console, lancez le script de configuration, puis compilez et installez:

$ cd C:\icu\icu\source

$ ./runConfigureICU

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

$ make.exe

$ make.exe installer

4) Construisez Qt avec (!) ICU support (définissez "-icu" à configurer), voir le script de compilation ci-dessous. Modifiez PATH en fonction de votre environnement.

Structure du répertoire:

  • C:\Qt\5.7.0 - téléchargez la version binaire de Qt 5.7.0 ici
  • C:\Qt\5.7.0n - Répertoire de la nouvelle version (compilée) de 5.7.0 (juste make dir)
  • C:\Qt\Src - source du téléchargement de Qt 5.7.0 ici

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

Exécuter la commande en exemple dans Windows Power Shell:

$ cd C:\Qt\Src\qtbase

$ ./compile.bat

Une fois la compilation terminée, utilisez-la pour installer des fichiers dans le répertoire BUILD_DIR (fichiers d'installation de Qt):

$ C:\mingw-w64\i686-1\mingw32\bin\mingw32-make.exe installer

Qt devrait commencer à installer

5) Téléchargez les sources de Qtwebkit dans C:\Qt\Src\qtwebkit. Utilisez le script de compilation ci-dessous pour compiler le qtwebkit à l'aide de la nouvelle construction de Qt 5.7.0 avec des fichiers situés dans C:\Qt\5.7.0n avec 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

Compilez le 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 installer

Il devrait être possible de compiler votre application avec le qtwebkit après une compilation et une installation réussies.

CONSTRUIRE QT POUR STATIQUE

Editez le fichier C:\Qt\Src\qtbase\compile.bat et passez à travers la construction.

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

ERREURS POSSIBLES

1) Pendant la construction de qtwebkit: "fatal error: unicode/uchar.h: No such file or directory"

Vérifiez que votre Qt 5.7.0n est construit avec ICU. Le service informatique peut également vous informer de la "configuration requise par l'ICU" lors de la configuration dans qtwebkit.

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

Vous devez utiliser la version correcte de Flex, à savoir "win_flex" dans ce cas. Vous devriez renommer les fichiers pour qu'ils utilisent win_flex au lieu de simplement flex (et bison).

1) renommez C:\Program Files (x86)\GnuWin32\bin\flex.exe en un nom non utilisé.

2) renommez C:\Program Files (x86)\GnuWin32\bin\bison.exe en un nom non utilisé.

3) renommez C:\winflex\win_bison.exe en bison.exe.

3) Pendant la construction de qtwebkit: "fatal error: sqlite3.h: No such file or directory"

Editez le fichier C:\Qt\Src\qtwebkit\Tools\Scripts\compile.bat et vérifiez le chemin correct vers sqlite:

set SQLITE3SRCDIR=C:\(path to some SQLITE .h/source files)

4) skipping incompatible ... when searching for ...

Vous devriez télécharger la bonne bibliothèque Arch (32 bits ou 64 bits)

5) View.cpp ... undefined reference to WKPageCanGoBack

Pourrait se produire lorsque passer à travers un test ou MiniBrowser. Vous pouvez rechercher dans les fichiers "UIProcess/API/qt" et "MiniBroswer" et le supprimer de Makefile et de certains autres fichiers, puis recommencer à construire.

LIENS

Construire Qt5: https://wiki.qt.io/Building_Qt_5_from_Git Construire Qt WebKit

aime comment: https://trac.webkit.org/wiki/BuildingQtOnWindows ICU

construire avec GNU: https://wiki.qt.io/Compiling-ICU-with-MinGW

9
Alex

Les versions de communauté référencées par Alex ne sont disponibles que jusqu’à Qt 5.9. Si vous souhaitez utiliser le plus récent Qt5 (la version actuelle est la 5.11), une autre option consiste à porter "QtWebKit" sur "QtWebEngine".

Voir: https://wiki.qt.io/QtWebEngine/Porting_from_QtWebKit

2
Nightingale7

Pour Windows, je viens de télécharger https://github.com/annulen/webkit/releases/tag/qtwebkit-tp5 et de copier les dossiers dans le dossier d'installation approprié de Qt. Maintenant, je peux utiliser MinGW Qt5.8 avec le dernier Webkit. Merci à Konstantin et à tous les contributeurs pour ce projet!

Une seule chose à noter - je devais utiliser la configuration de la version dans Qt.

1
app developer 27

Je l'ai fait fonctionner en copiant les fichiers pri webkit et webkitwidgets d'une installation précédente, 5.5.

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

1
JDavis