如何在 Yocto 中为 Raspberry PI 构建 Qt5 SDK?

How to build Qt5 sdk in Yocto for Raspberry PI?

我正在尝试构建 meta-toolchain-qt5。但是,我收到这些错误。我正在按照指南 - Guide Qt5 build

这是我到目前为止所做的事情 -

内部狭小 -

$git clone https://github.com/meta-qt5/meta-qt5.git

后来,我变了

conf/bblayers.conf

POKY_BBLAYERS_CONF_VERSION = "2"

BBPATH = "${TOPDIR}"
BBFILES ?= ""

BBLAYERS ?= " \
  /home/ABC/TSR/yocto_demo/poky/meta \
  /home/ABC/TSR/yocto_demo/poky/meta-poky \
  /home/ABC/TSR/yocto_demo/poky/meta-yocto-bsp \
  /home/ABC/TSR/yocto_demo/poky/meta-raspberrypi \
  /home/ABC/TSR/yocto_demo/poky/meta-qt5 \
  "

接下来,我在conf/local.conf

中追加了
EXTRA_IMAGE_FEATURES = "debug-tweaks ssh-server-openssh "

IMAGE_INSTALL_append = " gcc g++ binutils libgcc libgcc-dev libstdc++ libstdc++-dev libstdc++-staticdev \
autoconf automake ccache chkconfig glib-networking glibmm \
packagegroup-core-buildessential pkgconfig  \
boost cmake zlib glib-2.0 packagegroup-fsl-tools-testapps  \
    ruby \
    cpufrequtils \
    nano \
    gdb \
    gstreamer \
    gst-meta-video \
    gst-fsl-plugin \
    gst-plugins-base-app \
    gst-plugins-base \
    gst-plugins-good \
    gst-plugins-good-rtsp \
    gst-plugins-good-udp \
    gst-plugins-good-rtpmanager \
    gst-plugins-good-rtp \
    gst-plugins-good-video4linux2 \
    openssh-sftp-server \
    packagegroup-fsl-gstreamer \
    packagegroup-fsl-tools-testapps \
    packagegroup-fsl-tools-benchmark \
    imx-vpu \
    imx-test \      
    qtbase-fonts \
    qtbase-plugins \
    qtbase-tools \
    qtbase-examples \
    qtdeclarative \
    qtdeclarative-plugins \
    qtdeclarative-tools \
    qtdeclarative-examples \
    qtdeclarative-qmlplugins \
    qtmultimedia \
    qtmultimedia-plugins \
    qtmultimedia-examples \
    qtmultimedia-qmlplugins \
    qtsvg \
    qtsvg-plugins \
    qtsensors \
    qtimageformats-plugins \
    qtsystems \
    qtsystems-tools \
    qtsystems-examples \
    qtsystems-qmlplugins \
    qtscript \
    qt3d \
    qt3d-examples \
    qt3d-qmlplugins \
    qt3d-tools \
    qtwebkit \
    qtwebkit-examples-examples \
    qtwebkit-qmlplugins \
    qtgraphicaleffects-qmlplugins \
    qtconnectivity-qmlplugins \
    qtlocation-plugins \
    qtlocation-qmlplugins \
    cinematicexperience \
    cairo pango fontconfig freetype pulseaudio dbus \
    alsa-lib alsa-tools alsa-state alsa-utils-alsaconf fsl-alsa-plugins \
    i2c-tools \ 
    "

DISTRO_FEATURES_remove = "x11 wayland"

现在,构建之后,我收到以下错误 -

$bitbake meta-toolchain-qt5

$bitbake meta-toolchain-qt5
Loading cache: 100% |##########################################################################################################################| Time: 0:00:00
Loaded 1431 entries from dependency cache.
NOTE: Resolving any missing task queue dependencies
ERROR: Nothing PROVIDES 'tslib' (but /home/ABC/TSR/yocto_demo/poky/meta-qt5/recipes-qt/qt5/qtbase_git.bb DEPENDS on or otherwise requires it). Close matches:
  taglib
NOTE: Runtime target 'qttools-staticdev' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['qttools-staticdev', 'qtbase', 'tslib']
NOTE: Runtime target 'packagegroup-qt5-toolchain-target' is unbuildable, removing...
Missing or unbuildable dependency chain was: ['packagegroup-qt5-toolchain-target', 'qttools-staticdev', 'qtbase', 'tslib']
ERROR: Required build target 'meta-toolchain-qt5' has no buildable providers.
Missing or unbuildable dependency chain was: ['meta-toolchain-qt5', 'packagegroup-qt5-toolchain-target', 'qttools-staticdev', 'qtbase', 'tslib']

Summary: There were 2 ERROR messages shown, returning a non-zero exit code.

tmp/work/arm1176jzfshf-vfp-poky-linux-gnueabi/qtwebkit/5.12.3+gitAUTOINC+beaeeb9988-r0/git/Source/WTF/wtf/HashTraits.h:226:8: note: 'struct WTF::KeyValuePair<void*, JSC::Weak<JSC::JSObject> >' declared here | struct KeyValuePair { | ^~~~~~~~~~~~ | ninja: build stopped: subcommand failed. –

你有两个选择

First

tslibmeta-oe 层提供,因此您需要获取该层并将其添加到您的 BBLAYERS 所以在您的 poky 树中

git clone git://github.com/openembedded/meta-openembedded

conf/bblayers.conf 中将以下内容添加到 BBLAYERS 列表

 /home/ABC/TSR/yocto_demo/poky/meta-openembedded/meta-oe

Second

在您的图层中为 qtbase 添加一个 bbappend 文件,例如 qtbase_%.bbappend

PACKAGECONFIG_remove = "tslib"