Yocto SDK,QtWebEngine:QT 中的未知模块:webengine

Posted

技术标签:

【中文标题】Yocto SDK,QtWebEngine:QT 中的未知模块:webengine【英文标题】:Yocto SDK, QtWebEngine: Unknown module(s) in QT: webengine 【发布时间】:2016-05-25 11:09:03 【问题描述】:

我正在使用 Yocto 在嵌入式板 (i.MX6) 上使用 Qt 和 QtWebEngine 迈出第一步。使用提供的示例配方,如 quicknanobrowser,在目标上工作得很好。所以我无法确认 this answer 声称 WebEngine 在嵌入式平台上不可用。

现在我想编写自己的 QML 应用程序并将其部署在板上。使用配方 meta-toolchain-qt5 我创建了一个 SDK 并安装了它。在 QtCreator 中,我设置了 SDK 安装的所有路径并尝试构建它,但收到此错误:

Project ERROR: Unknown module(s) in QT: webengine
11:13:13: The process "/opt/poky/1.8/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake" exited with code 3.

原来SDK中没有包含WebEngine。感谢this answer,我通过将以下内容放入我自己的packagegroup-qt5-toolchain-target.bbappend 文件来解决这个问题:

RDEPENDS_$PN += " \
    qtwebengine \
    qtwebengine-qmlplugins \
    qtquickcontrols-qmlplugins \
    qtwebengine-examples \
"

然后重新安装 SDK。现在看来,SDK 安装中所有 WebEngine 文件都可用(下面的zsh glob 模式匹配/opt/poky/1.8/ 的任何子目录中的所有目录,其中包含“webengine”,不区分大小写):

% ls -1 -d (#i)/opt/poky/1.8/**/*webengine*(/)
/opt/poky/1.8/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtWebEngine/
/opt/poky/1.8/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtWebEngine/5.4.3/QtWebEngine/
/opt/poky/1.8/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtWebEngineWidgets/
/opt/poky/1.8/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/include/qt5/QtWebEngineWidgets/5.4.3/QtWebEngineWidgets/
/opt/poky/1.8/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/lib/qt5/qml/QtWebEngine/
/opt/poky/1.8/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/share/qt5/examples/webengine/
/opt/poky/1.8/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/share/qt5/examples/webenginewidgets/
/opt/poky/1.8/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi/usr/share/qt5/translations/qtwebengine_locales/

不过,我得到了同样的 Unknown module 错误。这个是独立于QtCreator的,也可以直接调用qmake来展示:

% source /opt/poky/1.8/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi
% /opt/poky/1.8/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake /home/me/test/test.pro -r -spec linux-oe-g++ CONFIG+=debug CONFIG+=declarative_debug CONFIG+=qml_debug
Project ERROR: Unknown module(s) in QT: webengine

项目本身应该没问题,因为它在桌面安装上编译和运行没有问题。

有什么想法吗? SDK中可能还缺少一些文件吗? qmake 在哪里搜索模块?我如何告诉 qmake 在哪里可以找到 WebEngine 安装?

【问题讨论】:

【参考方案1】:

/opt/poky/1.8/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi

添加sh /opt/poky/1.8/sysroots/x86_64-pokysdk-linux/environment-setup.d/qt5.sh

这将设置 Qt5 环境。

【讨论】:

感谢您的回答!但是,此文件已在 /opt/poky/1.8/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi 中获取。所以添加它甚至手动采购它都没有帮助。 尝试关注此wiki设置Qt创建者wiki.hioproject.org/…

以上是关于Yocto SDK,QtWebEngine:QT 中的未知模块:webengine的主要内容,如果未能解决你的问题,请参考以下文章

从 Yocto SDK Build 安装时,QtCreator 认为 Qt5 QMake 安装无效

使用 Yocto Poky 为 Raspberry Pi2 构建 QtWebEngine - vcos_platform_types.h:没有这样的文件或目录

Yocto tips (19): Yocto SDK Toolchian的使用

YOCTO-问题:nativesdk-qtbase:已安装文件/目录,但未以任何软件包提供]] << [

Qt5.4 不支持 QtWebEngine 吗?

qt 5.6 怎么编译 qtWebView 或者 qtWebEngine