[oe] [meta-qt5] how to setup and use a cross-compiler for qt5 applications?
Joachim Schiele
js at lastlog.de
Wed Oct 28 20:35:44 UTC 2015
hi,
i need some directions on how to go on.
# questions
- should i use meta-qt5 master instead of daisy on my platform?
- is meta-toolchain-qt5 the right way to cross compile an application
vom x86_64 to ppc64 or did i miss something?
- how to get all qtdemo applications onto the target image (read:
sd-card image)
# my requirements
- develop qt 5.x applications on yocto+poky on PPC64
- either use a cross compiler, meta-toolchain-qt5, or compile software
natively
for testing:
- want all qt5 demos (or qtdemo, or what it is actually called) on the
ppc64 target to execute them and see that qt5 actually is working
# my platform
- freescale ppc64 board (big endian) using QorIQ 1.8 from freescale
Build Configuration:
BB_VERSION = “1.22.0“
BUILD_SYS = “x86_64-linux"
NATIVELSBSTRING = “Ubuntu-14.04“
TARGET_SYS = “powerpc64-fsl-linux"
MACHINE = “t4240rdb-64b"
DISTRO = “fsl-networking"
DISTRO_VERSION = “QorIQ-SDK-V1.8“
TUNE_FEATURES = “m64 fpu-hard e6500 altivec"
TARGET_FPU = “hard"
meta
meta-yocto
meta-yocto-bsp = “daisy:18837ea4cdd4fdab608e0a032a11a2dfb6b1ee1a"
meta-fsl-ppc = “daisy:ed8d8f097eb9fb9c4d76cfeb617da5ce72d9b414“
meta-fsl-toolchain = “daisy:a253b3594d8d9e0a4ed869d1fb502c395c4438ac"
meta-fsl-networking = “daisy:6eb28ed659bbadfa470237dfce98bcbf53c18fe1“
meta-oe
meta-networking
meta-ruby
meta-perl
meta-filesystems
meta-multimedia
meta-xfce
meta-gnome = “daisy:4a44c4107899363b22c01eb5621b0c86db1c659c"
meta-security = “daisy:9f4c3849521465b459845dcc1a7a885bacaae9d9“
meta-qt5 = “daisy:23405d3a66c308e0b2ea64308b834285850c5c9f"
# after building and installing on the freescale PPC64 board
- qt 5.2.1 from meta-qt5::daisy
- i got qt 5.2.1 working, qt assistant can be started! however, it
- does not install qmake into the target
- does not install the qt examples
i can't use this to compile anything natively without qmake/moc. see
https://github.com/meta-qt5/meta-qt5/blob/daisy/recipes-qt/qt5/qtbase.inc#L204
# meta-toolchain-qt5
bitbake meta-toolchain-qt5 builds:
fsl-networking-eglibc-x86_64-ppc64e6500-toolchain-QorIQ-SDK-V1.8.sh
after installation on a different VM i do this:
cd /opt/fsl-networking/QorIQ-SDK-V1.8/
ls
environment-setup-ppc64e6500-fsl-linux
environment-setup-ppce6500-fsl-linux
site-config-ppc64e6500-fsl-linux
site-config-ppce6500-fsl-linux
sysroots
version-ppc64e6500-fsl-linux
version-ppce6500-fsl-linux
note: i also tried environment-setup-ppce6500-fsl-linux but doesn't work
either
source environment-setup-ppc64e6500-fsl-linux
cd ~/screenshot-example/
which qmake
/opt/fsl-networking/QorIQ-SDK-V1.8/sysroots/x86_64-fslsdk-linux/usr/bin/qt5/qmake
qmake
Project ERROR: Unknown module(s) in QT: widgets gui core
# my local.conf
... some lines i think are not important ...
MACHINE ??= "t4240rdb"
SDKMACHINE ?= "x86_64"
TOOLCHAIN_BUILD ?= "True"
DEFAULTTUNE ?= "ppc64e6500"
DISTRO_FEATURES_append = " opengl"
DISTRO_FEATURES_remove = "bluetooth irda wifi nfc virtualization
pulseaudio wayland 3g touch touchscreen"
MACHINE_FEATURES_remove = "touchscreen"
# EXTRA_IMAGE_FEATURES: Valid features: dbg-pkgs debug-tweaks dev-pkgs
doc doc-pkgs eclipse-debug hwcodecs nfs-server
# package-management ptest-pkgs qt4-pkgs qtcreator-debug
read-only-rootfs splash ssh-server-dropbear ssh-server-openssh
# staticdev-pkgs tools-debug tools-profile tools-sdk tools-testapps x11
x11-base x11-sato
EXTRA_IMAGE_FEATURES += "dev-pkgs ssh-server-openssh tools-debug
tools-sdk tools-debug tools-profile"
# this created the 'qtbase-examples' once, so now this issue seems to be
not relevant anymore:
PACKAGECONFIG_append_pn-qtbase = " tools icu examples accessibility gl
udev openssl widgets developer sql-sqlite sql-mysql sql-psql sm"
#PACKAGECONFIG_remove_pn-qttools= "qtwebkit"
#qtbase-examples, ERROR: qtbase-examples not found in the base feeds
(t4240rdb_64b ppc64e6500 powerpc64 noarch any all).
#query the config with this command:
# bitbake -e qtbase | grep ^PACKAGECONFIG=
# For recipes inheriting the packagegroup class, setting
PACKAGEGROUP_DISABLE_COMPLEMENTARY to "1"
# specifies that the normal complementary packages (i.e. -dev, -dbg, and
so forth) should not be
# automatically created by the packagegroup recipe, which is the default
behavior.
# FIXME PACKAGEGROUP_DISABLE_COMPLEMENTARY = "0"
# FIXME should packagegroup-xfce-base be removed from IMAGE_INSTALL_append?
CORE_IMAGE_EXTRA_INSTALL += "\
packagegroup-xfce-base \
packagegroup-xfce-extended \
packagegroup-xfce-multimedia \
packagegroup-qt5-toolchain-target \
packagegroup-qt5-qtcreator-debug \
"
IMAGE_INSTALL_append += "gcc g++ binutils gdb \
git subversion \
bc \
nix libxslt libdbd-sqlite-perl www-curl-perl \
mariadb \
postgresql \
libgcc libgcc-dev \
libstdc++ libstdc++-dev \
automake ccache chkconfig \
glib-2.0 glib-networking glibmm \
packagegroup-core-buildessential pkgconfig \
cmake zlib \
boost jpeg libpng12 \
cairo pango fontconfig freetype pulseaudio dbus \
xterm vim nano \
ruby \
libstdc++-staticdev \
autoconf \
alsa-lib alsa-tools alsa-state
alsa-utils-alsaconf \
i2c-tools \
cpufrequtils \
gstreamer1.0 \
gstreamer1.0-meta-base \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
pciutils \
usbutils \
python-core \
ltrace \
strace \
linux-firmware \
htop \
tcpdump \
bash \
util-linux \
e2fsprogs \
e2fsprogs-mke2fs \
e2fsprogs-e2fsck \
e2fsprogs-tune2fs \
mtd-utils \
mtd-utils-jffs2 \
mtd-utils-ubifs \
dosfstools \
net-tools \
kmod \
sysfsutils \
sysklogd \
sysstat \
qtbase \
qttools \
qtconnectivity \
qtdeclarative \
qtimageformats \
qtlocation \
qtscript \
qtsensors \
qtserialport \
qtxmlpatterns \
qtx11extras \
qtsvg \
qtmultimedia \
qtquick1 \
"
#
#
#
#
#
# not found in base feeds issued packages:
# qttools-native \
# qtquickcontrols \
# qtgraphicaleffects \
#ERROR: qtgraphicaleffects not found in the base feeds (t4240rdb_64b
ppc64e6500 powerpc64 noarch any all).
# stuff i don't want for now
#
# nativesdk-qttools \
# qtbase-native \
# qtwebkit \
# qtwebkit-examples \
#
#
#qtdeclarative \
# packages which fail on installation
#libglu mesa-glut
#cinematicexperience \
#
#IMAGE_INSTALL_append \
# 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 \
# "
#
More information about the Openembedded-devel
mailing list