首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >要安装哪个模块来修复Yocto的“模块QtQuick.Controls.Styles未安装”错误?

要安装哪个模块来修复Yocto的“模块QtQuick.Controls.Styles未安装”错误?
EN

Stack Overflow用户
提问于 2018-05-05 00:07:50
回答 2查看 6.8K关注 0票数 4

我已经成功地为跟随RPi2的本教程构建了Yocto映像。我决定扩展QML演示,并尝试一些Qt快速样式(import QtQuick.Controls.Styles 1.4)。

下面是图像的bb文件

代码语言:javascript
复制
# Pulled from a mix of different images:
include recipes-core/images/rpi-basic-image.bb

# This image is a little more full featured, and includes wifi
# support, provided you have a raspberrypi3
inherit linux-raspberrypi-base

SUMMARY = "The minimal image that can run Qt5 applications"
LICENSE = "MIT"

# depend on bcm2835, which will bring in rpi-config
DEPENDS += "bcm2835-bootfiles"

MY_TOOLS = " \
    qtbase \
    qtbase-dev \
    qtbase-mkspecs \
    qtbase-plugins \
    qtbase-tools \
"

MY_PKGS = " \
    qt3d \
    qt3d-dev \
    qt3d-mkspecs \
    qtcharts \
    qtcharts-dev \
    qtcharts-mkspecs \
    qtconnectivity-dev \
    qtconnectivity-mkspecs \
    qtquickcontrols2 \
    qtquickcontrols2-dev \
    qtquickcontrols2-mkspecs \
    qtdeclarative \
    qtdeclarative-dev \
    qtdeclarative-mkspecs \
    qtgraphicaleffects \
    qtgraphicaleffects-dev \
"

MY_FEATURES = " \
    linux-firmware-bcm43430 \
    bluez5 \
    i2c-tools \
    python-smbus \
    bridge-utils \
    hostapd \
    dhcp-server \
    iptables \
    wpa-supplicant \
"

DISTRO_FEATURES_append += " bluez5 bluetooth wifi"

IMAGE_INSTALL_append = " \
    ${MY_TOOLS} \
    ${MY_PKGS} \
    ${MY_FEATURES} \
    basicquick \
"
# Qt >5.7 doesn't ship with fonts, so these need to be added explicitely
IMAGE_INSTALL_append = "\
    ttf-dejavu-sans \
    ttf-dejavu-sans-mono \
    ttf-dejavu-sans-condensed \
    ttf-dejavu-serif \
    ttf-dejavu-serif-condensed \
    ttf-dejavu-common \
"

以及演示本身的bb文件

代码语言:javascript
复制
SUMMARY = "Simple Qt5 Quick application"
SECTION = "examples"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"

# I want to make sure these get installed too.
DEPENDS += "qtbase qtdeclarative qtquickcontrols2"

SRCREV = "${AUTOREV}"

# GitLab own repo
SRC_URI[sha256sum] = "f2dcc13cda523e9aa9e8e1db6752b3dfaf4b531bfc9bb8e272eb3bfc5974738a"
SRC_URI = "git://git@gitlab.com:/some-repo.git;protocol=ssh"

S = "${WORKDIR}/git"

require recipes-qt/qt5/qt5.inc

do_install() {
      install -d ${D}${bindir}
      install -m 0755 BasicQuick ${D}${bindir}
}

执行时我得到了错误

代码语言:javascript
复制
QQmlApplicationEngine failed to load component
qrc:/main.qml:24 Type Page2 unavailable
qrc:/Page2.qml:4 module "QtQuick.Controls.Styles" is not installed

Page2是我在main.qml中定义和使用的一项。演示在我的PC上运行,没有任何问题(定制构建的QT5.9.1),但是由于缺少子模块,在RPi2上失败了。

坦率地说,我以前从未使用过这个子模块(我的定制构建的QT5.9.1已经启用了所有功能),我不确定我需要包含什么(如果meta-qt5甚至提供它),以便能够在Yocto系统上使用它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-05 13:11:08

问题是包的版本不匹配。

您使用的是版本1:

代码语言:javascript
复制
import QtQuick.Controls.Styles 1.4

但是构建版本2:

代码语言:javascript
复制
MY_PKGS = " \
    ...
    qtquickcontrols2 \
    ...

您需要在图像中包含的是qtquickcontrols

票数 1
EN

Stack Overflow用户

发布于 2019-01-08 15:18:02

您需要安装qtquickcontrols-qmlplugins。

只需添加到build/local.conf

代码语言:javascript
复制
PACKAGECONFIG_append_pn-qtbase = " accessibility"
PACKAGECONFIG_append_pn-qtquickcontrols = " accessibility"

IMAGE_INSTALL_append = " qtdeclarative-qmlplugins qtquickcontrols-qmlplugins"

这是原产手册https://importgeek.wordpress.com/2018/07/17/module-qtquick-controls-is-not-installed/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50184485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档