Projektfehler: Unbekannte Module in QT: Webkitwidgets

76

Ich portiere Code von qt4 nach qt5. Ich habe meiner .proDatei wie vorgeschlagen die folgende Zeile hinzugefügt :

QT += webkitwidgets

Beim Ausführen qmakewird jedoch der folgende Fehler angezeigt:

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

Ich entwickle auf Ubuntu 12.04 LTS und installiere Qt wie beschrieben .

user1251007
quelle

Antworten:

116

Sie müssen die Webkitwidgets-Bibliothek installieren.

Versuchen Sie dies unter Ubuntu in einem Terminal:

sudo apt-get install libqt5webkit5-dev
user1251007
quelle
10
Gibt es eine Lösung für OS X?
Ionică Bizău
3
Hey, ich habe es versucht, aber es gibt immer noch den gleichen Fehler. Gibt es eine Lösung?
Wboy
9
Was ist mit Windows?
jjxtra
@ Muadh Programmer: Die Frage besagte, dass eine Lösung für Ubuntu gewünscht wird, daher ist meine Antwort für dieses Betriebssystem. Die anderen Antworten richten sich jedoch an Windows. Wenn Sie Fragen zu ihren Lösungen haben, können Sie deren Antworten kommentieren.
user1251007
10

Wenn Sie das Webkit * Windows-Bibliothek für Qt 5.7 installieren müssen, sollten Sie es manuell kompilieren, da in einer neuen Version das Webkit (WebView?) Durch WebEngine ersetzt wurde.

Lesen Sie mehr über Qt 5.7 Release (Kommentare): http://blog.qt.io/blog/2016/06/16/qt-5-7-released/

Erstellungssequenz (statisch ODER gemeinsam genutzt):

1) Laden Sie Qt 5.7.0-Quellen herunter: http://download.qt.io/community_releases/5.7/5.7.0/

2) Laden Sie die erforderlichen Tools herunter: ActiveState Perl (binär), Python (binär), Ruby (binär), GnuWin Bison (binär), GPref (binär), Grep (binär), WinFlex, LibIconv, make (binär), sqlite (Quelle) !), ICU (Quelle), Windows Msys (Binär) (Unix wie Shell mit den Tools), Mingw-W64 (Bin + Dev) für Build Qt mit QtWebKit, siehe Link auf: https://trac.webkit.org/ wiki / BuildingQtOnWindows

3) Nach dem Herunterladen der ICU-Quelle in C: \ icu \ icu. Öffnen Sie die msys QT mingw-Konsolen-Shell, indem Sie das Startfenster-Menü öffnen (msys sollte heruntergeladen und installiert werden) und suchen oder verwenden Sie die Schnellsuche. Starten Sie in der geöffneten Konsole das Konfigurationsskript und kompilieren und installieren Sie Folgendes:

$ cd C: \ icu \ icu \ source

$ ./runConfigureICU

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

$ make.exe

$ make.exe installieren

4) Erstellen Sie Qt mit (!) ICU-Unterstützung (setzen Sie "-icu" zum Konfigurieren), siehe Kompilierungsskript unten. Ändern Sie PATH in Ihre Umgebung.

Verzeichnisaufbau:

  • C: \ Qt \ 5.7.0 - Laden Sie hier die Binärversion von Qt 5.7.0 herunter
  • C: \ Qt \ 5.7.0n - Verzeichnis für neue (kompilierte) Version von 5.7.0 (nur dir erstellen)
  • C: \ Qt \ Src - Quelle von Qt 5.7.0 hier herunterladen

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

Führen Sie den Befehl in exmaple in der Windows Power Shell aus:

$ cd C: \ Qt \ Src \ qtbase

$ ./compile.bat

Verwenden Sie es nach dem Durchlaufen der Kompilierung, um Dateien im BUILD_DIR zu installieren (Qt-Dateien installieren):

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

Qt sollte mit der Installation beginnen

5) Laden Sie Qtwebkit-Quellen in C: \ Qt \ Src \ qtwebkit herunter. Verwenden Sie das folgende Kompilierungsskript, um das qtwebkit mit dem neuen Build Qt 5.7.0 mit Dateien in C: \ Qt \ 5.7.0n auf der Intensivstation zu kompilieren.

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

Kompilieren Sie das 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 installieren

Nach erfolgreicher Kompilierung und Installation sollte es möglich sein, Ihre Anwendung mit dem qtwebkit zu kompilieren.

BAUEN SIE QT FÜR STATISCH

Bearbeiten Sie die Datei C: \ Qt \ Src \ qtbase \ compile.bat und übergeben Sie den 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
...

MÖGLICHE FEHLER

1) Während des Builds von qtwebkit: "fatal error: unicode/uchar.h: No such file or directory"

Überprüfen Sie, ob Ihr Qt 5.7.0n mit der Intensivstation erstellt wurde. Die IT kann Sie auch bei der Konfiguration in qtwebkit über "ICU erforderlich" informieren.

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

Sie sollten in diesem Fall die richtige Version von Flex verwenden, die "win_flex" ist. Sie sollten Dateien umbenennen, um win_flex anstelle von flex (und bison) zu verwenden.

1) Benennen Sie C: \ Programme (x86) \ GnuWin32 \ bin \ flex.exe in einen nicht verwendeten Namen um.

2) Benennen Sie C: \ Programme (x86) \ GnuWin32 \ bin \ bison.exe in einen nicht verwendeten Namen um.

3) Benennen Sie C: \ winflex \ win_bison.exe in bison.exe um.

3) Während des Builds von qtwebkit: "fatal error: sqlite3.h: No such file or directory"

Bearbeiten Sie die Datei C: \ Qt \ Src \ qtwebkit \ Tools \ Scripts \ compile.bat und überprüfen Sie den korrekten Pfad zu SQLite:

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

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

Sie sollten den richtigen Bibliotheksbogen herunterladen (32bit oder 64bit).

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

Kann passieren, wenn ein Test oder ein MiniBrowser durchlaufen wird. Sie können in Dateien nach "UIProcess / API / qt" und "MiniBroswer" suchen und diese aus Makefiles und einigen anderen Dateien entfernen und dann erneut mit dem Erstellen beginnen.

LINKS

Erstellen Sie Qt5: https://wiki.qt.io/Building_Qt_5_from_Git Qt WebKit-Build

wie es geht: https://trac.webkit.org/wiki/BuildingQtOnWindows ICU

Mit GNU erstellen: https://wiki.qt.io/Compiling-ICU-with-MinGW

Alex
quelle
Hallo, ich stecke in C: \ Qt \ Src \ qtbase \ compile.bat fest. Dies schlägt fehl mit "C: \ qt5.7-source \ qtbase> jom.exe -j 4 Fehler: Datei-Makefile existiert nicht." Wissen Sie, was das Problem sein könnte?
Tonisives
1
Stellen Sie sicher, dass der vorherige Befehl in der bat-Datei erfolgreich ausgeführt wurde: "Rufen Sie C: \ Qt \ Src \ qtbase \ configure.bat -prefix% BUILD_DIR% -Plattform% QMAKESPEC% -confirm-license -debug-and- auf release -opensource -opengl desktop -no-compile-examples -icu -IC: / icu / icu / dist / include -LC: / icu / icu / dist / lib "
Alex
Vielen Dank für Ihre Antwort! Jetzt denke ich, ist mit qtbase \ compile.bat ein bisschen weiter gekommen. Haben Sie eine Idee, was den neuesten Fehler "Die Syntax des Befehls ist falsch." Verursachen könnte? pastebin.com/pCLXvs22
tonisives
App-Entwickler 27, kann die Make-Version anders sein als die Visual Studio-Version. Was verwenden Sie zum Kompilieren? Überprüfen Sie Ihre make-Binärdatei auf make the project path und stellen Sie sicher, dass diese korrekt ist.
Alex
1
Ich habe es nie zum Laufen gebracht. Aber endlich habe ich dieses github.com/annulen/webkit/releases/tag/qtwebkit-tp5 gefunden, mit dem ich neueres Webkit und qt 5.8 verwenden kann.
Tonisives
1

Ich habe es zum Laufen gebracht, indem ich die Webkit- und Webkitwidgets-Pri-Dateien aus einer früheren Installation, 5.5, kopiert habe.

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

JDavis
quelle
1

Für Windows habe ich gerade https://github.com/annulen/webkit/releases/tag/qtwebkit-tp5 heruntergeladen und die Ordner in den entsprechenden Qt-Installationsordner kopiert. Jetzt kann ich MinGW Qt5.8 mit dem neuesten Webkit verwenden. Vielen Dank an Konstantin und alle Mitwirkenden für dieses Projekt!

Nur eines ist zu beachten - ich musste die Release-Konfiguration in Qt verwenden.

Tonisive
quelle
Können Sie feststellen, in welchen relevanten Ordner Sie diese Dateien eingefügt haben?
taimoor1990
0

Was für mich funktioniert, ist die Kombination von zwei Antworten. Ich habe verwendet, was @ user1251007 + diesen Befehl vorgeschlagen hat

sudo apt-get install libqt5websockets5-dev

Diese Befehlszeile finden Sie hier: Link zur Stackoverflow-Antwort

G. Adnane
quelle