Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Installation and Deployment
  4. Problem with executing cross-compiled QT application in beaglebone, libstdc++.so.6 correct version not found
Forum Updated to NodeBB v4.3 + New Features

Problem with executing cross-compiled QT application in beaglebone, libstdc++.so.6 correct version not found

Scheduled Pinned Locked Moved Unsolved Installation and Deployment
20 Posts 3 Posters 6.7k Views 2 Watching
  • 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.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #10

    Well, configure for eglfs then. Pass -qt-xcb means that you are building the xcb backend which requires an Xorg server running on 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

    P 1 Reply Last reply
    0
    • SGaistS SGaist

      Well, configure for eglfs then. Pass -qt-xcb means that you are building the xcb backend which requires an Xorg server running on your device.

      P Offline
      P Offline
      pli_in_sweden
      wrote on last edited by
      #11

      @SGaist hi

      I first try 'sudo apt-get install libgles2-mesa-dev libgles2-mesa'.

      then I try to reconfigiure with after confclean:

      ...(the same as previous post).. -no-xcb -opengl es2 -eglfs

      But I get the error that said openGL test failed, and 'the eglfs was enabled´, but the pre-condition feature.egl failed'

      I realized that it could not find the libglesv2.so. But the thing is, I don't even have libglesv2.so in my sysroot/usr/lib!!

      I download the sysroot from https://releases.linaro.org/components/toolchain/binaries/latest/arm-linux-gnueabihf/

      How can I get a libglesv2.so?

      Or is there any other sysroot that I can use for QT5.8?

      Bests

      1 Reply Last reply
      0
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by SGaist
        #12

        Usually the constructor of your device provides the necessary hooks in order to access the GPU on their hardware.

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

        P 1 Reply Last reply
        0
        • SGaistS SGaist

          Usually the constructor of your device provides the necessary hooks in order to access the GPU on their hardware.

          P Offline
          P Offline
          pli_in_sweden
          wrote on last edited by pli_in_sweden
          #13

          @SGaist hi

          Ok. So on BBB I found the libqeglfs.so in /usr/lib/arm-linux-guneabihf/qt5/plugins/platforms/. What exactly should I do then?

          I guess instead of using the sysroot from linaro website. I mount the / of BBB to my host PC and use that as a sysroot when doing the configuration.

          Let's say I mount the / to /mnt/bbb of my host

          sudo sshfs debian@192.168.7.2:/ /mnt/BBB

          Is it correct then to to modify the qmake.conf

          QMAKE_INCDIR_EGL = /mnt/BBB/usr/include
          QMAKE_LIBDIR_EGL = /mnt/BBB/usr/lib

          save qmake.conf.

          Then run configure as :

          ./configure -platform linux-g++ -xplatform linux-arm-gnueabi-g++ -release -device linux-beagleboard-g++ -sysroot /mnt/BBB -prefix /opt/Qt5.8-arm/ -device-option CROSS_COMPILE=/opt/pliARMtoolchain/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf- -nomake tests -nomake examples -no-xcb -opengl es2 -eglfs

          then it gies en error:

          The OpenGL ES 2.0 functionality test failed!
          You might need to modify the include and library search paths by editing
          QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in
          /home/pli/Downloads/qt-everywhere-opensource-src-5.7.0/qtbase/mkspecs/linux-g++.

          I can find the libGLESv2.so in /mnt/BBB/usr/lib/arm-linux-gnueabihf/. And I already 'sudo apt-get install libgles2-mesa-dev libgles2-mesa', so please guide me how I should find the OPEN GL es2 header and library, from sysroot or from the host?

          Thanks!

          1 Reply Last reply
          0
          • SGaistS Offline
            SGaistS Offline
            SGaist
            Lifetime Qt Champion
            wrote on last edited by
            #14

            You should use the verbose mode to get the exact error matching the functionality test for OpenGL ES 2.0.

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

            P 1 Reply Last reply
            2
            • SGaistS SGaist

              You should use the verbose mode to get the exact error matching the functionality test for OpenGL ES 2.0.

              P Offline
              P Offline
              pli_in_sweden
              wrote on last edited by
              #15

              @SGaist said in Problem with executing cross-compiled QT application in beaglebone, libstdc++.so.6 correct version not found:

              You should use the verbose mode to get the exact error matching the functionality test for OpenGL ES 2.0.

              hi

              here is the result
              0_1497101612728_upload-a164f612-33fe-4292-902b-4425203a5938

              I have been searching the headers, but on BBBI only found /usr/include/GL/gl.h, not gl2.h!

              THe BBB image is Debian 8.7 2017-03-19 4GB SD LXQT which is available on beaglebone.org.

              I have tried to use the SGX driver by following the instruction here http://elinux.org/BeagleBoardDebian#Debian_8_.28jessie.29 (SGX section)

              After that I have the libGLESv2.so, but I don't have the headers!

              Best
              /Peilang

              P 1 Reply Last reply
              0
              • P pli_in_sweden

                @SGaist said in Problem with executing cross-compiled QT application in beaglebone, libstdc++.so.6 correct version not found:

                You should use the verbose mode to get the exact error matching the functionality test for OpenGL ES 2.0.

                hi

                here is the result
                0_1497101612728_upload-a164f612-33fe-4292-902b-4425203a5938

                I have been searching the headers, but on BBBI only found /usr/include/GL/gl.h, not gl2.h!

                THe BBB image is Debian 8.7 2017-03-19 4GB SD LXQT which is available on beaglebone.org.

                I have tried to use the SGX driver by following the instruction here http://elinux.org/BeagleBoardDebian#Debian_8_.28jessie.29 (SGX section)

                After that I have the libGLESv2.so, but I don't have the headers!

                Best
                /Peilang

                P Offline
                P Offline
                pli_in_sweden
                wrote on last edited by
                #16

                @pli_in_sweden

                THe problem is solved by installing libgles-mesa-dev, then I got the folder of GLES2.

                ANd finally the ./configure work very well witout error.

                But then there is error when doing make:
                0_1497107477431_upload-e4eea728-8879-4e4e-bbb3-80b20dbc606d

                I used to use toolchain and sysroot from linaro website. And there is no make error.But that is because the sysroot from linaro doesn't support opengl es2, and that is why I mount the BBB as sysroot instead. And now the configuration with -opengl es2 work, but during make there seems to be some conflict.

                /Peilang

                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #17

                  Can you give more details about the conflicts ?

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

                  P 1 Reply Last reply
                  1
                  • SGaistS SGaist

                    Can you give more details about the conflicts ?

                    P Offline
                    P Offline
                    pli_in_sweden
                    wrote on last edited by
                    #18

                    @SGaist hi

                    I uploaded the pictures but seems it is not loaded.

                    But anyway, the problem is caused by the toolchain that I used, which has a version of 6.3.1. While the BBB has a gcc version of 4.9. So I download the toolchain with gcc4.9 and I success the run make without error.

                    However, when I try to run the application on the BBB and show it on a touch screen, there is the error:
                    "
                    EGL error: could not create the egl surface : error = 0x300b
                    Aborted
                    "

                    But if I unset the LD_LIBRARY_PATH, the application can run, and show in the display. But then it wouldn't find the lib from QT.

                    I guess it is needed to set LD_LIBRARY_PATH, and thus I need to fix the error above.

                    Any clue?

                    And thanks again for the guide, you are very helpful and save me a lot of time on blindly goolging.

                    /Peilang

                    1 Reply Last reply
                    0
                    • SGaistS Offline
                      SGaistS Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on last edited by
                      #19

                      The upload feature is currently broken. See here for a guide on how to share an image.

                      IIRC, you have a Mali GPU on that device, did you check that you have the matching libraries installed ?

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

                      P 1 Reply Last reply
                      0
                      • SGaistS SGaist

                        The upload feature is currently broken. See here for a guide on how to share an image.

                        IIRC, you have a Mali GPU on that device, did you check that you have the matching libraries installed ?

                        P Offline
                        P Offline
                        pli_in_sweden
                        wrote on last edited by pli_in_sweden
                        #20

                        @SGaist said in Problem with executing cross-compiled QT application in beaglebone, libstdc++.so.6 correct version not found:

                        Mali GPU

                        hi

                        Can you give more detail on how I can check the library for Mali? I don't know anything about Mali...

                        Here is the output of ldd comamnd when LD_LIBRARY_PATH is EXPORTED (the app can NOT run because of the EGL error):

                        Here is the output of ldd comamnd when LD_LIBRARY_PATH is UNSET (the app can run WITHOUT the EGL error):

                        But what library am I looking at? Thanks.

                        This is how it looks with the EGL error:

                        (Is it because I have not fixed the first two warning yet?)

                        I also have a second question, I found out that I need to put my source files (.cpp .h and .pro) inside the /qtbase/example on my host PC in order to build and run the app without the EGL error (of cause this is when LD_LIBRARY_PATH is unset). And also need to add:

                        target.path = $$[QT_INSTALL_EXAMPLES]/mySource/
                        INSTALLS += target

                        in the .pro file.

                        If I put my source file elsewhere outside the /qtbase/examples/, I can build, but the app will have the EGL error.

                        The output from "qmake -query QT_INSTALL_EXAMPLES" is:
                        /home/pli/BBB/home/debian/Qt5.8-arm/examples

                        (/home/pli/BBB is where I mount the BBB via sshfs)

                        I don't find the 'examples' folder under Qt5.8-arm.

                        So I have no idea what is wrong here that I have to build the code inside the /qtbase/examples.

                        Thanks.

                        1 Reply Last reply
                        0

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved