我正在使用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.
事实证明,WebEngine未包含在SDK中。感谢this answer,我通过将以下内容添加到我自己的packagegroup-qt5-toolchain-target.bbappend
文件中来修复此问题:
RDEPENDS_${PN} += " \
qtwebengine \
qtwebengine-qmlplugins \
qtquickcontrols-qmlplugins \
qtwebengine-examples \
"
然后重新安装SDK。现在似乎所有WebEngine文件都可以在SDK安装中使用(下面的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/
但是,我得到了相同的未知模块错误。这与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安装?
答案 0 :(得分:0)
在/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环境。