Boot2QT vs QT Framework - Basics
-
Hello!
As you may have guessed, I'm rather new to Qt. I am working on developing an embedded iMX device. I am currently developing the QT application on a Windows PC within QT Creator. On the target (iMX8), I am running a Linux Yocto build with Boot2Qt. Everything is running great so far with this setup.
My question is - On the target, do I have to be running Boot2Qt to run my Qt application? Or can I just have the Qt framework (QT6 meta layer) within my Yocto build? If both will work, are there benefits to either path? Is Boot2Qt mainly for prototyping?
Sorry for the rookie question. I've tried researching the difference between Boot2Qt and Qt Framework, but surprisingly, it is much harder to find the answer than expected.
Thanks!
-
Hello!
As you may have guessed, I'm rather new to Qt. I am working on developing an embedded iMX device. I am currently developing the QT application on a Windows PC within QT Creator. On the target (iMX8), I am running a Linux Yocto build with Boot2Qt. Everything is running great so far with this setup.
My question is - On the target, do I have to be running Boot2Qt to run my Qt application? Or can I just have the Qt framework (QT6 meta layer) within my Yocto build? If both will work, are there benefits to either path? Is Boot2Qt mainly for prototyping?
Sorry for the rookie question. I've tried researching the difference between Boot2Qt and Qt Framework, but surprisingly, it is much harder to find the answer than expected.
Thanks!
Hi, and welcome!
@Ktome said in Boot2QT vs QT Framework - Basics:
the difference between Boot2Qt and Qt Framework
Boot2Qt contains the Qt Framework.
Essentially, Qt is a set of libraries that let you create applications. However, applications don't run in isolation -- they need to run inside an operating system (OS). Qt also depends on many other external libraries to work.
Boot2Qt is a convenience package: It bundles the Qt libraries plus the OS files plus all the external libraries plus the tools that you need to build and deploy your application.
My question is - On the target, do I have to be running Boot2Qt to run my Qt application? Or can I just have the Qt framework (QT6 meta layer) within my Yocto build? If both will work, are there benefits to either path? Is Boot2Qt mainly for prototyping?
The purpose of Boot2Qt is to help you quickly get started with developing and testing your application. You probably don't want to use it in your final release. See https://doc.qt.io/Boot2Qt/b2qt-images.html
-
Hi JKSH,
Fantastic! That helps quite a bit. I appreciate your help!
Maybe this is a separate topic, but we began our software development using Boot2Qt on our target device. As we approach production, we are working toward moving away from the Boot2Qt image. So for our target device, I performed a Yocto build with the meta-qt6 layer and included the "Qt essentials" package group and "Qt add-ons" package group. When I attempt to run our release configuration application built with Qt Creator 8.0.2 (Windows) on the target device, I get the error message "error while loading shared libraries: libQt6Quick.so.6: cannot open shared object file: No such file or directory." Based upon the documentation, I thought QtQuick was included within the "Qt essentials" package group. The Yocto build completed successfully with no errors or warnings, so I'm not sure what I could be missing. Are you aware of any other packages that I may be missing?
Thanks again!
-
Hi JKSH,
Fantastic! That helps quite a bit. I appreciate your help!
Maybe this is a separate topic, but we began our software development using Boot2Qt on our target device. As we approach production, we are working toward moving away from the Boot2Qt image. So for our target device, I performed a Yocto build with the meta-qt6 layer and included the "Qt essentials" package group and "Qt add-ons" package group. When I attempt to run our release configuration application built with Qt Creator 8.0.2 (Windows) on the target device, I get the error message "error while loading shared libraries: libQt6Quick.so.6: cannot open shared object file: No such file or directory." Based upon the documentation, I thought QtQuick was included within the "Qt essentials" package group. The Yocto build completed successfully with no errors or warnings, so I'm not sure what I could be missing. Are you aware of any other packages that I may be missing?
Thanks again!
@Ktome said in Boot2QT vs QT Framework - Basics:
Fantastic! That helps quite a bit. I appreciate your help!
You're welcome! Welcome to the world of Qt :-D
I performed a Yocto build with the meta-qt6 layer and included the "Qt essentials" package group and "Qt add-ons" package group. When I attempt to run our release configuration application built with Qt Creator 8.0.2 (Windows) on the target device, I get the error message "error while loading shared libraries: libQt6Quick.so.6: cannot open shared object file: No such file or directory." Based upon the documentation, I thought QtQuick was included within the "Qt essentials" package group. The Yocto build completed successfully with no errors or warnings, so I'm not sure what I could be missing. Are you aware of any other packages that I may be missing?
I'm not sure, sorry. I don't have much experience with custom Yocto builds myself.
Are you on a tight schedule? If so, I believe Qt Professional Services can provide support for creating, optimizing, and securing custom production images for all kinds of embedded devices: https://www.qt.io/qt-professional-services
-
Hi JKSH,
Fantastic! That helps quite a bit. I appreciate your help!
Maybe this is a separate topic, but we began our software development using Boot2Qt on our target device. As we approach production, we are working toward moving away from the Boot2Qt image. So for our target device, I performed a Yocto build with the meta-qt6 layer and included the "Qt essentials" package group and "Qt add-ons" package group. When I attempt to run our release configuration application built with Qt Creator 8.0.2 (Windows) on the target device, I get the error message "error while loading shared libraries: libQt6Quick.so.6: cannot open shared object file: No such file or directory." Based upon the documentation, I thought QtQuick was included within the "Qt essentials" package group. The Yocto build completed successfully with no errors or warnings, so I'm not sure what I could be missing. Are you aware of any other packages that I may be missing?
Thanks again!