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

时间:2013-09-09 13:31:58

标签: c++ qt qt5 qtwebkit

我正在将代码从qt4移植到qt5。我将以下行添加到.pro文件as suggested

QT += webkitwidgets

但是,当我运行qmake时,我收到此错误:

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

我在Ubuntu 12.04 LTS上开发并安装了Qt as described

6 个答案:

答案 0 :(得分:109)

您需要安装webkitwidgets库。

在Ubuntu上,在终端中尝试:

sudo apt-get install libqt5webkit5-dev

答案 1 :(得分:8)

如果你需要为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(source!),ICU(source),windows msys(二进制)(unix就像shell一样带工具),mingw-w64(bin + dev)用于构建Qt和QtWebKit,参见链接:https://trac.webkit.org/wiki/BuildingQtOnWindows

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

  

$ cd C:\ icu \ icu \ source

     

$ ./runConfigureICU

     

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

     

$ make.exe

     

$ make.exe install

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 install

Qt应该开始安装

5)将Qtwebkit源代码下载到C:\ Qt \ Src \ qtwebkit。使用下面的编译脚本使用新的Qt 5.7.0版本编译qtwebkit,其中包含带有ICU的C:\ Qt \ 5.7.0n中的文件。

C:\ Qt的\ SRC \ QtWebKit的\工具\脚本\的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 install

成功编译和安装后,应该可以使用qtwebkit编译应用程序。

建立QT for STATIC

编辑文件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部门也可以通知您关于" 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&和其他一些文件,然后重新开始构建。

LINKS

  

构建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

答案 2 :(得分:2)

Alex引用的社区版本仅在Qt 5.9之前可用。 如果你想使用更新的Qt5(当前版本是5.11),那么另一种选择是移植" QtWebKit"到" QtWebEngine"。

请参阅:https://wiki.qt.io/QtWebEngine/Porting_from_QtWebKit

答案 3 :(得分:1)

我通过复制先前安装5.5中的webkit和webkitwidgets pri文件来实现它。

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

答案 4 :(得分:1)

对于Windows,我刚刚下载了https://github.com/annulen/webkit/releases/tag/qtwebkit-tp5并将文件夹复制到相关的Qt安装文件夹。现在我可以使用MinGW Qt5.8和最新的webkit。感谢Konstantin和该项目的所有贡献者!

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

答案 5 :(得分:0)

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

sudo apt-get install libqt5websockets5-dev

在此处找到此命令行:link to the stackoverflow response