我已经从源代码构建了Qt 5库到Ubuntu 12.04并制作了一个Qt测试应用程序。在.pro文件中,我写了QT += core gui webkitwidgets
以在我的测试项目中使用Qwebview。
但是当我将qmake运行到Qt创建者时,它会给我错误:
Unknown module(s) in QT: webkitwidgets
我认为当我从源代码构建Qt 5库时,webkit或webkitwidgets模块不是由源构建的。
所以我从源代码构建了qtwebkit或webkitwdgtes模块,如下所示。
cd qtwebkit
qmake
make -jX
其中X是核数* 2 + 1
但是当我运行make命令时,我得到了以下错误。
StringImpl.cpp:(.text+0x64ad): undefined reference to u_strToUpper_51'
StringImpl.cpp:(.text+0x6636): undefined reference to u_toupper_51'
DatePrototype.cpp:(.text+0x328): undefined reference to udat_open_51'
DatePrototype.cpp:(.text+0x366): undefined reference to udat_close_51'
JSGlobalObjectFunctions.cpp:(.text+0x99f): undefined reference tou_charType_51'
StringImpl.cpp:(.text+0xa00): undefined reference tou_foldCase_51'
CollatorICU.cpp:(.text+0x1f1): undefined reference to ucol_getLocaleByType_51' CollatorICU.cpp:(.text+0x20f): undefined reference toucol_getAttribute_51'
CollatorICU.cpp:(.text+0x25b): undefined reference to ucol_open_51'
CollatorICU.cpp:(.text+0x27f): undefined reference toucol_open_51'
CollatorICU.cpp:(.text+0x2a4): undefined reference to ucol_setAttribute_51'
以及更多此类未定义的引用错误。
此外,我发现qtwebkit模块使用ICU库(在我的机器上丢失)。
那么如何将ICU库构建到Ubuntu中,以便qtwebkit模块可以参考已编译的ICU库,我可以修复这些引用错误并成功构建qtwebkit。
答案 0 :(得分:0)
我通过从Qt / lib文件夹中删除ICU库来修复了类似的错误。 如果在OS库中安装了另一个版本的ICU,则会发生冲突。
答案 1 :(得分:0)
你试过这个吗?:
sudo apt-get install libqt5webkit5-qmlwebkitplugin libqt5webkit5.
RESOURCES += \
resources.qrc
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets webkit webkitwidgets
然而,即使我为我的项目工作,webkit也会提出更多问题,例如从UI工具栏中丢失或者当时没有编译将程序发布到Store。我建议研究其他解决方案 QWebEngineView
答案 2 :(得分:-2)
尝试使用apt-get:
安装软件包sudo apt-get install libqt5webkit5-dev