代码之家  ›  专栏  ›  技术社区  ›  user1251007

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

  •  84
  • user1251007  · 技术社区  · 12 年前

    我正在将代码从qt4移植到qt5。我在我的 .pro 文件 as suggested :

    QT += webkitwidgets
    

    然而,当我跑步时 qmake ,我得到这个错误:

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

    我正在Ubuntu 12.04 LTS上进行开发,并安装了Qt as described .

    6 回复  |  直到 9 年前
        1
  •  126
  •   user1251007    4 年前

    您需要安装webkitwidgets库。

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

    sudo apt-get install libqt5webkit5-dev
    

    在Fedora上,包有一个不同的名称,因此请尝试:

    sudo apt-get install qt5-qtwebkit-devel
    

    或者在Fedora上,通过dnf:

    sudo dnf install qt5-qtwebkit-devel
    
        2
  •  12
  •   Alex    9 年前

    如果您需要为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 shell);使用QtWebKit构建Qt的mingw-w64(bin+dev),请参阅上的链接: https://trac.webkit.org/wiki/BuildingQtOnWindows

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

    $cd C:\icu\icu\来源

    $ ./运行配置ICU

    $set路径=%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的新(编译)版本的目录(只需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中的exmaple中运行命令:

    $cd C:\Qt\Src\qtbase

    $ ./压缩.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

    $ ./压缩.bat

    $cd C:\Qt\Src\qtwebkit\WebKitBuild\发布

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

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

    为静态生成QT

    编辑文件C:\Qt\Src\qtbase\compaile.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”和“MiniBrower”,并将其从 制作文件和其他一些文件,然后重新开始构建。

    链接

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

        3
  •  3
  •   Nightingale7    7 年前

    Alex引用的社区构建仅在第5.9季度之前可用。 如果您想使用更新的Qt5(当前版本为5.11),那么另一个选项是将“QtWebKit”移植到“QtWeb引擎”。

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

        4
  •  1
  •   JDavis    9 年前

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

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

        5
  •  1
  •   tonisives    9 年前

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

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

        6
  •  0
  •   user9578753 user9578753    6 年前

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

    sudo apt-get install libqt5websockets5-dev
    

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