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

use*_*007 71 c++ qt qtwebkit qt5

我正在将代码从qt4移植到qt5.我按照建议将以下行添加到我的.pro文件中:

QT += webkitwidgets
Run Code Online (Sandbox Code Playgroud)

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

Project ERROR: Unknown module(s) in QT: webkitwidgets
Run Code Online (Sandbox Code Playgroud)

我正在开发Ubuntu 12.04 LTS并按照描述安装了Qt .

use*_*007 111

您需要安装webkitwidgets库.

在Ubuntu上,在终端中尝试:

sudo apt-get install libqt5webkit5-dev
Run Code Online (Sandbox Code Playgroud)

  • OS X有什么解决方案吗? (9认同)
  • Windows怎么样? (8认同)
  • 嘿,我试过这个,但它仍然会抛出同样的错误.有解决方案吗? (3认同)
  • 窗户怎么样?我有同样的错误! (2认同)

Ale*_*lex 9

如果你需要为Qt 5.7安装webkit*Windows库,你应该手动编译它,因为在新版webkit(WebView?)中被WebEngine取代.

阅读Qt 5.7发布(评论):http://blog.qt.io/blog/2016/06/16/qt-5-7-released/

构建序列(静态OR共享):

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/维基/ 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安装

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
Run Code Online (Sandbox Code Playgroud)

在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.使用下面的编译脚本使用新的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
Run Code Online (Sandbox Code Playgroud)

编译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
...
Run Code Online (Sandbox Code Playgroud)

可能的错误

1)构建qtwebkit时: "fatal error: unicode/uchar.h: No such file or directory"

检查您的Qt 5.7.0n是否与ICU构建.IT部门也可以在qtwebkit中通过配置通知您"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)
Run Code Online (Sandbox Code Playgroud)

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