Unknown module(s) in QT: qml quick on Beaglebone Black
-
Hello.
I'm working with Qt5 in meta-qt5 layer on Yocto Linux. Target device is Beaglebone Black - ARM architecture.
I strongly require your suggestion and knowledge... I'm stacking this shit for more than 60 hours.Problem
Now I successfully build image with Qt5.
In my target device(Beaglebone black), I cloned a project from my repo into /home/root/ then run qmake but didn't work:Sh-4.3# qmake Project ERROR; Unknown module(s) in QT; qml quick
I want to run it on the target device.
Environment
Host: Ubuntu 16.04 LTS (64bit)
Target: Yocto linux (arm-linux-gnueabihf)I referred jumpnowtech.com and used ' qt5-x11-image ' (roughly, core-image-sato + qt5).
and added many IMAGE_INSTALL_append in local.conf such as: qtdeclarative, qtquick1, qtquickcontrols2, etc.
Anyway poky successfully build the image, and thus I can boot beaglebone with GUI.Methods?
Which way should I tackle more?
- (1) fix poky settings (yocto building process)
I've tried adding several packages to 'local.conf' as far as the build passes. However, it seems 'QtDeclarative' module is not installed (see below... installed libraries in /usr/include/qt5 on target).
Q. Do you have any further ideas than adding them in the build/local.conf ?:
IMAGE_INSTALL_append += qtdeclarative qtdeclarative-plugins qtdeclarative-tools \ qtdeclarative-qmlplugins qtquick1 qtquickcontrols2 qtquickcontrols qtscript \
- (2) add & compile QtDeclarative on the target
Then I tried to 'git clone' QtDecralatives source in /usr/include/qt5 on the target, then run qmake and make... error comes.
### /usr/include/qt5/ Sh-4.3# cd QtDeclarative Sh-4.3# qmake qtdeclarative.pro Sh-4.3# make ... make[2] : Entering directory ' /usr/include/qt5/QtDeclarative/src/qml' In file included from util/qqmlchangeset.cpp:34:0: util/qqmlchangeset_p.h:48:27: fatal error: QtCore/qdebug.h: No such file or directory compilation terminated. ... Makefile:45: recipe for target 'sub-src-make_first' failed
Well, however, there is qdebug.h! (/usr/include/qt5/QtCore/qdebug.h)
I doubted the library is not linked, but in the /usr/lib/ , there are lib files: libQt5Core.so, ...so.5, ...so.5.6, and ...so.5.6.1.
Sadly there is no libQtQml or similar library.
Q. Does this way work?
---- Q. If so, how to deal with the missing of headers?
---- Q. If not, how to add modules?-
(3) Partial cross-compile from Qt-everywhere source
I got an idea (maybe odd) : QtCreator can make binary for target devices wit appropriate toolchains.
Is it possible to introduce QtDeclarative or other required packages as pre-build binaries?
Q. Do you have any further information on this kind of solution? -
(4) Fully (cross-)compile from Qt-everywhere source
Before I use poky, I've spent much time to do cross-compile Qt-everywhere 5.6.1 and 5.7.0 on linux x86-64bit. But end up with many errors.
Reference was on Qt forum.
Also I tried to compile these source on the target (Bealgebone black). the make spits errors after a day.
I saw several other Q&As saying cross-compile for arm devices doesn't work well on recent Qt5, and thus using yocto is strongly reccomended.
Q. Does anyone can help cross-compilation from linux x86-64bit to beaglebone black(arm-v7) with Qt5.6+ ?
I hope anyone helps me....
HiYosh
Appdendix: situations
installed libraries:
in /usr/include/qt5 on target:- QtConcurrent
- QtCore
- QtDBus
- QtGui
- QtQt
- QtNetwork
- QtPlatformHeaders
- QtPlatformSupport
- QtPrintSupport
- QtSql
- QtTest
- QtWidgets
- QtXml
- QtZlib
further information can be add as you request.
- (1) fix poky settings (yocto building process)