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


76

我正在将代码从qt4移植到qt5。根据建议,我在.pro文件中添加了以下行:

QT += webkitwidgets

但是,当我运行时qmake,出现以下错误:

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

我正在Ubuntu 12.04 LTS上进行开发,并按所述安装了Qt 。

Answers:


116

您需要安装webkitwidgets库。

在Ubuntu上,在终端上尝试以下操作:

sudo apt-get install libqt5webkit5-dev

10
OS X有什么解决方案吗?
尼卡比曹

3
嘿,我试过了,但是仍然抛出相同的错误。有解决方案吗?
Wboy

9
Windows呢?
jjxtra '16

@Muadh程序员:这个问题表明需要针对Ubuntu的解决方案,所以我的答案是针对该OS的。但是,其他答案针对Windows。如果您对他们的解决方案有疑问,可以评论他们的答案。
user1251007

10

如果您需要安装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(二进制)(与工具类似的shell一样的unix),mingw-w64(bin + dev),用于使用QtWebKit构建Qt,请参见以下链接:https : //trac.webkit.org/ Wiki / BuildingQtOnWindows

3)将ICU源下载到C:\ icu \ icu之后。通过打开“开始”窗口菜单(应下载并安装msys)并搜索或使用快速搜索来打开msys QT mingw控制台外壳。在打开的控制台中,启动configure脚本,然后编译并安装:

$ cd C:\ icu \ icu \ source

$ ./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.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中的exmaple中运行命令:

$ 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。使用下面的编译脚本,使用带有ICU的C:\ Qt \ 5.7.0n中新文件的Qt 5.7.0新版本编译qtwebkit。

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并通过构建。

...
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也可以在qtwebkit中的configure上通知您有关“需要ICU”的信息。

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不存在。” 您知道可能是什么问题吗?
tonisives

1
应用程序开发人员27,请确保bat文件中的上一个命令成功完成:“调用C:\ Qt \ Src \ qtbase \ configure.bat -prefix%BUILD_DIR%-platform%QMAKESPEC%-confirm-license -debug-and-版本-opensource -opengl桌面-no-compile-examples -icu -IC:/ icu / icu / dist / include -LC:/ icu / icu / dist / lib”
Alex

谢谢您的回答!现在,我认为对qtbase \ compile.bat进行了进一步的介绍。您是否知道什么可能导致最新错误“命令的语法不正确。”?pastebin.com/pCLXvs22
tonisives

应用程序开发人员27,可能是Make版本不同于Visual Studio版本的make版本,您使用什么进行编译?检查您的make二进制文件中的make项目路径,并确保它是正确的。
亚历克斯(Alex)

1
我从来没有工作。但最终找到了这个github.com/annulen/webkit/releases/tag/qtwebkit-tp5,我可以使用它使用更新的webkit和qt 5.8。
tonisives


1

我通过从以前的安装版本5.5中复制webkit和webkitwidgets pri文件来使其工作。

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



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.