Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Solved Making my yocto image able to compile my qt project

    Mobile and Embedded
    yocto imx8 embedded qt
    3
    19
    1772
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • K
      kmarconi last edited by

      Hi everyone,

      I'm writing this post because I'm a kinda stuck on the last step of my school project. The objective is to run a qt project on a embedded nxp imx device. The Qt project is done and well running on my computer, the yocto image for the imx module is also working and is able to run the QtDemo file (the layers meta-qt5 is included in my yocto image). Now the last step for me is to include my qt project in this yocto image. I first thought about cross compilation but what I would like my system to do is to be able to compilethe project by itself and then run it and not just "simply" running an app cross-compiled by my pc. If anyone could help me on that particular case, that would be awesome.

      Thanks !

      1 Reply Last reply Reply Quote 0
      • SGaist
        SGaist Lifetime Qt Champion last edited by

        Hi and welcome to devnet,

        Do you mean make your application a part of your yocto build ?

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        1 Reply Last reply Reply Quote 0
        • K
          kmarconi last edited by kmarconi

          Yes exactly. I'm actually making a recipe with my .pro file included in but I'm wondering if I also have to include in my recipe all the Headers and stuff of my code (like in the .pro file). Also, I just discovered "boot2qt" and I'm wondering if it could help me to get my board to boot directly on my qt app ? That would be awesome.
          Thanks for answering me so quickly and for your support :)

          1 Reply Last reply Reply Quote 0
          • SGaist
            SGaist Lifetime Qt Champion last edited by

            AFAIR, the idea is that your recipe will build your project so it needs to be complete in order to be built just the .pro file is not enough.

            The recipe basically will call qmake, make, make install

            Interested in AI ? www.idiap.ch
            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

            K 1 Reply Last reply Reply Quote 1
            • K
              kmarconi @SGaist last edited by kmarconi

              @SGaist Hi, thanks for your help, I successfully integrated my app in my yocto build and the end end last week :) Thanks for your reply anyway, I'm now sure that what I did was the good way ! Thanks ! Last question for you if possible : My Qt app is in my yocto image but when I try to launch it, I have an error that says : "Failed to load translation : /translation/myapp_C.qm " whereas none of the project files are named like this nor are listed in my pro/bb file.... If you have any idea on why Qt is looking for this file only in the yocto version (project is working fine on Qt Creator), that would be awesome.

              EDIT : Found out that the application default language was not the one I wanted, that's what the translation file was wrong. Everything for this part is fine now !

              Pablo J. Rogina 1 Reply Last reply Reply Quote 0
              • Pablo J. Rogina
                Pablo J. Rogina @kmarconi last edited by

                @kmarconi said in Making my yocto image able to compile my qt project:

                I successfully integrated my app in my yocto build

                Great! so could you mark this post as solved then?

                Upvote the answer(s) that helped you solve the issue
                Use "Topic Tools" button to mark your post as Solved
                Add screenshots via postimage.org
                Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

                K 1 Reply Last reply Reply Quote 0
                • K
                  kmarconi @Pablo J. Rogina last edited by kmarconi

                  @Pablo-J-Rogina Was about to do it but I got a last question if it's possible. I would like to know the way to include image files like png or svg in my recipe ? For the moment, i'm doing it with the SRC_URI += instruction but on the embedded side, there is none of the file I would like to find. I'm I doing it wrong ?

                  Edit : Adding FILE_${PN} += "path to my directory" seems to be the way

                  Pablo J. Rogina 1 Reply Last reply Reply Quote 0
                  • Pablo J. Rogina
                    Pablo J. Rogina @kmarconi last edited by

                    @kmarconi said in Making my yocto image able to compile my qt project:

                    I would like to know the way to include image files like png or svg in my recipe ?

                    I cannot help with Yocto recipes to "bake" those files into the image, but another approach is to add those images into the Qt resource system, making them part of your app executable

                    Upvote the answer(s) that helped you solve the issue
                    Use "Topic Tools" button to mark your post as Solved
                    Add screenshots via postimage.org
                    Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

                    K 1 Reply Last reply Reply Quote 0
                    • K
                      kmarconi @Pablo J. Rogina last edited by kmarconi

                      @Pablo-J-Rogina I successfully added them to my yocto image, thanks. The thing is that I don't know how to tell my app in the yocto part where to look for these files. In fact, in Qt creator, my app knows that by reading my qrc files and by using "qrc:/...." paths, it will be able to use any kind of files listed in these qrc files. But on the yocto side, I'm not sure that the binary of my app is able to find all these paths. The thing which is telling me this is that I always have this error on my yocto image when i launch the app :

                      QQmlCOmponent : Component is not ready
                      qml : actionView test for Vid? is null
                      QQmlComponent : Component is not ready
                      qml : action imageTest for Image is null
                      qt.qpa.xcb : xcb_shm_create_segment() failed for size 1228800
                      Segmentation fault

                      Is there a specific way to tell yocto or qt where to find the files he needs on the yocto side ? Thanks .

                      1 Reply Last reply Reply Quote 0
                      • SGaist
                        SGaist Lifetime Qt Champion last edited by

                        Is this coming from your own files ?
                        Does your image contain all the QtQuick stuff you are using ?

                        Interested in AI ? www.idiap.ch
                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                        K 1 Reply Last reply Reply Quote 0
                        • K
                          kmarconi @SGaist last edited by kmarconi

                          @SGaist What do you mean by your own files ? If it's about the qml : action error, yes I think it's from my files. In fact, I have an action called imageTest, and it requires a file which is registered in my qrc files and the way to get it is by using the qrc path ("qrc:/myfile.png"). I think that the qml is not able to use this qrc path on the yocto image side and that's why it is saying that the Component is not ready. ( correct me if I'm wrong)

                          And about QtQuick, do you have a list of all the qtquick package that we can install ?For the moment, I have included qtquicontrols2 in my recipe with qtquickcontrols2 and qtquickcontrols2-mkspecs in my RDEPENDS flag.

                          Thanks again !

                          1 Reply Last reply Reply Quote 0
                          • K
                            kmarconi last edited by

                            Adding qtquickcontrols2-qmlplugins to my recipe didn't changed anything (don't know if this information matters to you)

                            1 Reply Last reply Reply Quote 0
                            • SGaist
                              SGaist Lifetime Qt Champion last edited by

                              No I don't have such a list.

                              What I would do is to check that you build all the Qt modules that are related to your QT += entries.

                              qrc paths should just work because these files are built in your executable.

                              Interested in AI ? www.idiap.ch
                              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                              K 1 Reply Last reply Reply Quote 0
                              • K
                                kmarconi @SGaist last edited by kmarconi

                                @SGaist Thanks for your support again,will try it out today and then come back here asap

                                Edit : I'm using QT += qml quick gui in my .pro, what should I include on the yocto side ? (more than what I actually have in my DEPENDS : qtbase qtdeclarative qtquickcontrols2) . Also, here is my RDEPENDS :
                                RDEPENDS_${PN} += "
                                qtvirtualkeyboard
                                gstreamer1.0-plugins-base
                                gstreamer1.0-plugins-good
                                qtquickcontrols2
                                qtquickcontrols2-mkspecs
                                qtquickcontrols2-qmlplugins
                                "

                                Thanks !

                                1 Reply Last reply Reply Quote 0
                                • K
                                  kmarconi last edited by kmarconi

                                  EDIT: Problem is solved, I was missing the qtmultimedia package. Now I have this error (hope to be the last one : QML Image : Cannot open : qrc:/image/test.jpg) whereas I have the qrc file which include this jpg file ...

                                  EDIT(2) : All my files are now well found by the app, it was a problem of relative path. Now I need to fix the : qt.qpa.xcb : xcb_shm_create_segment() failed for size 1228800 error and it will finally run I wish...

                                  After running gdb on my apps, it seems to be a problem linked with Qt and OpenGL ( I have the segmentation fault coming from : QOpenGLContext::shareGroup() const () from /usr/lib/libQt5Gui.so.5)

                                  Pablo J. Rogina 1 Reply Last reply Reply Quote 1
                                  • Pablo J. Rogina
                                    Pablo J. Rogina @kmarconi last edited by

                                    @kmarconi said in Making my yocto image able to compile my qt project:

                                    QML Image : Cannot open : qrc:/image/test.jpg

                                    Could it be possible your yocto image is missing the Qt Image plugins?
                                    You should deploy the JPG plugin at least to your device from the <Qt_installation_folder>/plugins/imageformats folder

                                    Upvote the answer(s) that helped you solve the issue
                                    Use "Topic Tools" button to mark your post as Solved
                                    Add screenshots via postimage.org
                                    Don't ask support requests via chat/PM. Please use the forum so others can benefit from the solution in the future

                                    1 Reply Last reply Reply Quote 0
                                    • K
                                      kmarconi last edited by kmarconi

                                      Hi, thanks for your reply . Yeah I was missing the Qtmultimedia package but also some my path in my qrc files were wrong.

                                      I'm now working on the segmentation fault : qt.qpa.xcb : xcb_shm_create_segment() failed for size 1228800 which I have everytime I launch my app ... As I said in my earlier message, after running gdb on my apps, it seems to be a problem linked with Qt and OpenGL ( I have the segmentation fault coming from : QOpenGLContext::shareGroup() const () from /usr/lib/libQt5Gui.so.5)

                                      1 Reply Last reply Reply Quote 0
                                      • SGaist
                                        SGaist Lifetime Qt Champion last edited by

                                        Is there anything in your Yocto recipe to manage the OpenGL setup of your device ?

                                        Interested in AI ? www.idiap.ch
                                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                        K 1 Reply Last reply Reply Quote 0
                                        • K
                                          kmarconi @SGaist last edited by kmarconi

                                          @SGaist I don't think so but in the meantime I don't see any package which could do it. My board support OpenGl ES2 so I tried some stuff like adding "PACKAGE CONFIG += "gles2" " to my qtbase bb file but nothing has changed ...

                                          Also tried to add PACKAGECONFIG_append_pn-qtbase = "gles2" in my local.conf but no change.

                                          After some googling, I found that the error was printed by this code : https://code.qt.io/cgit/qt/qtbase.git/tree/src/plugins/platforms/xcb/qxcbbackingstore.cpp?h=dev (line 371)

                                          Edit: Closing this issue, it was a problem of platform (by default it was using x11 which is not the one used by my embedded device) . Thanks a lot for your help again !

                                          1 Reply Last reply Reply Quote 1
                                          • First post
                                            Last post