项目错误: QT 中的未知模块: webkitwidgets

我正在将 qt4的代码移植到 qt5:

QT += webkitwidgets

但是,当我运行 qmake时,我得到这个错误:

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

我在 Ubuntu 12.04 LTS 上开发并安装了 Qt 就像描述的那样

62356 次浏览

您需要安装 webkitwidgets 库。

在 Ubuntu 上,试试这个终端:

sudo apt-get install libqt5webkit5-dev

在 Fedora 上,软件包有一个不同的名字,因此可以尝试:

sudo apt-get install qt5-qtwebkit-devel

或者在 Fedora 上,通过 dnf:

sudo dnf install qt5-qtwebkit-devel

如果你需要为 Qt 5.7安装 webkit * Windows 库,你应该手动编译它,因为在新版本的 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 like shell with the tools) ,mingw-w64(bin + dev) for build Qt with QtWebKit,请参阅链接: https://trac.webkit.org/wiki/BuildingQtOnWindows

3)将 ICU 资源下载到 C: ICU ICU。通过打开开始窗口菜单(msys 应下载并安装)打开 msys QT Mingw 控制台外壳,并进行搜索或使用快速搜索。在打开的控制台中启动配置脚本,然后编译并安装:

$cd C: icu icu 来源

$./runConfigureICU

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

$make. exe

$make. exe 安装

4)使用(!) ICU 支持构建 Qt (设置“-ICU”以进行配置)参见下面的编译脚本。将 PATH 更改为您的环境。

目录结构:

  • C: Qt 5.7.0-在这里下载 Qt 5.7.0的二进制版本
  • C: Qt 5.7.0 n-目录,用于5.7.0的新版本(已编译)(只需 make 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

在 Windows Power Shell 中运行 maple 命令:

$cd C: Qt Src qtbase

$

通过编译后,使用它在 BUILD _ DIR (安装 Qt 文件)中安装文件:

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

Qt 应该开始安装

5)下载 Qtwebkit 源代码到 C: Qt Src Qtwebkit。使用下面的编译脚本来编译 qtwebkit,使用新的 Qt 5.7.0版本和 C: Qt 5.7.0 n 中的文件和 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

$

$cd C: Qt Src qtwebkit WebKitBuild 发行版

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

在成功编译和安装之后,应该可以使用 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"

检查您的 Qt5.7.0 n 版本与 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 构建

像如何: https://trac.webkit.org/wiki/BuildingQtOnWindows重症监护室

使用 GNU: https://wiki.qt.io/Compiling-ICU-with-MinGW构建

我通过复制之前5.5版本中的 webkit 和 webkitwidgets pri 文件使其工作。

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

对于窗口,我只是下载 https://github.com/annulen/webkit/releases/tag/qtwebkit-tp5和复制文件夹到相关的 Qt 安装文件夹。现在我可以使用 MinGW Qt5.8和最新的 webkit。感谢康斯坦丁和这个项目的所有贡献者!

只有一件事要注意-我需要在 Qt 中使用发布配置。

Alex 引用的社区构建只能在 Qt 5.9之前使用。 如果您想使用较新的 Qt5(当前版本是5.11) ,那么另一个选项是将“ QtWebKit”移植到“ QtWebEngine”。

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

对我有效的是两个答案的组合,我使用了@user1251007建议 + 这个命令

sudo apt-get install libqt5websockets5-dev

在这里找到这个命令行: 链接到堆栈溢出响应