Qt cross-compilation on i.MX6

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Qt cross-compilation on i.MX6

5,527 Views
almarto
Contributor IV

Dear all,

I am working with Qt5.5.0 and QtCreator 3.4.2 open source. On the hardware side I work with a i.MX6 sabre platform for smart devices.

As a first aproach, after having created the image fsl-image-qt5 correctly (I think), I would like to run different examples by cross compiling and executing them on the SABRE platform. On my PC I run Ubuntu 14.04 LTS.

When I compile all the examples to run on the Ubuntu PC, they all work properly (bluetooth, qtquick ...)

However, when I try to cross-compile and run them on the SABRE platform, I get execution errors with some of them.

When I try to run a bluetooth scanner, I get:

./btscanner: error while loading shared libraries: libQt5Bluetooth.so.5: cannot open shared object file: No such file or directory

When I try to run a Qtquick example (dasboard), I get:

Qt Warning: Could not find a location of the system's Compose files. Consider setting the QTCOMPOSE environment variable.

Qt Warning: Could not find a location of the system's Compose files. Consider setting the QTCOMPOSE environment variable.

QQmlApplicationEngine failed to load component

qrc:/qml/dashboard.qml:45 module "QtQuick.Extras" is not installed

qrc:/qml/dashboard.qml:43 module "QtQuick.Controls" is not installed

qrc:/qml/dashboard.qml:44 module "QtQuick.Controls.Styles" is not installed

qrc:/qml/dashboard.qml:45 module "QtQuick.Extras" is not installed

qrc:/qml/dashboard.qml:43 module "QtQuick.Controls" is not installed

qrc:/qml/dashboard.qml:44 module "QtQuick.Controls.Styles" is not installed

qrc:/qml/dashboard.qml:45 module "QtQuick.Extras" is not installed

qrc:/qml/dashboard.qml:43 module "QtQuick.Controls" is not installed

qrc:/qml/dashboard.qml:44 module "QtQuick.Controls.Styles" is not installed

Can you please give me any advice on what to do? I am stuck at this point.

thank you in advance!

Regards

Labels (3)
8 Replies

2,112 Views
aravinthkumarja
Senior Contributor II

Hi almarto

i unable to cross compile QT5.5.0 into imx6 platform, I'm facing lot of error. Can you give cross compilation procedure.

Regards,

Aravinth

0 Kudos

2,112 Views
LuisCasado
NXP Employee
NXP Employee

Hello,

Use the NXP official BSP and build fsl-image-qt5

www.nxp.com/imxtools

Luis

0 Kudos

2,112 Views
aravinthkumarja
Senior Contributor II

Hi LuisCasado

I want Qt5.5 exactly, but build fsl-image-qt5 it's not a Qt5.5. Do you have any other option??

Regards,

Aravinth

0 Kudos

2,112 Views
LuisCasado
NXP Employee
NXP Employee

Hello,

In BSP 3.14.52-1.0.0-GA , QT is the v5.5.0

Luis

2,112 Views
aravinthkumarja
Senior Contributor II

Thanks LuisCasado​ .

Regards,

Aravinth

0 Kudos

2,112 Views
alejandrolozan1
NXP Employee
NXP Employee

Hi,

Which examples are you compiling?

I'd like to test that out. But make sure that the libQt5Bluetooth.so.5 is found in /usr/lib folder.

If it does not exist I would look for it in the sysroot of the host, if found there copy it to the rootfs of the target.

/Alejandro

0 Kudos

2,112 Views
almarto
Contributor IV

Hi Alejandro,

I have bin able to execute some more examples.

I guess cross-compilation and SDK installation are OK, but I have some doubts on what to add to the IMAGE with IMAGE_INSTALL


However, when I try to execute dashboard example, I get the error:

root@imx6qsabresd:~/fcm/dashboard# ./dashboard
Qt Warning: Could not find a location of the system's Compose files. Consider setting the QTCOMPOSE environment variable.
Qt Warning: Could not find a location of the system's Compose files. Consider setting the QTCOMPOSE environment variable.
QQmlApplicationEngine failed to load component
qrc:/qml/dashboard.qml:43 module "QtQuick.Controls" version 1.4 is not installed


And when I try to execute planets example, I get the error:

Qt Warning: Could not find a location of the system's Compose files. Consider setting the QTCOMPOSE environment variable.
Qt Warning: Could not find a location of the system's Compose files. Consider setting the QTCOMPOSE environment variable.
qrc:/planets.qml:38:1: module "QtCanvas3D" is not installed
Unable to find an X11 visual which matches EGL config 5

At the moment, this is what I add to the fsl-image-qt5:

IMAGE_INSTALL_append = " python-core \
apache2 \
php \
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-dev \
qtconnectivity-mkspecs \
qtconnectivity-qmlplugins \
qtlocation-plugins \
qtlocation-qmlplugins \
qtquickcontrols-qmlplugins \
qtquick1 \
qtquick1-qmlplugins \
qtquick1-plugins \
i2c-tools \
"

These are the modules that are installed in my board:

root@imx6qsabresd:/usr/lib# ls libQt5*.so

libQt5Bluetooth.so   libQt5OpenGL.so          libQt5Sql.so

libQt5Concurrent.so  libQt5PrintSupport.so    libQt5Test.so

libQt5Core.so        libQt5Qml.so             libQt5Widgets.so

libQt5DBus.so        libQt5Quick.so           libQt5Xml.so

libQt5Gui.so         libQt5QuickParticles.so  libQt5XmlPatterns.so

libQt5Network.so     libQt5QuickTest.so

libQt5Nfc.so         libQt5QuickWidgets.so

Thank you very much for your feedback!

0 Kudos

2,112 Views
alejandrolozan1
NXP Employee
NXP Employee

Those errors may be caused because you might need a different version of the packages.

Please check that in the qml you are using the correct verision.

import QtQuick.Controls <version>

0 Kudos