Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Qt project deployment on rpi 3 board

Qt project deployment on rpi 3 board

Scheduled Pinned Locked Moved Unsolved General and Desktop
11 Posts 3 Posters 1.6k Views
  • 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.
  • H Offline
    H Offline
    hem1
    wrote on last edited by
    #1

    I am done with cross compiling Qt 5.10.1 for rpi 3 board and took me nearly 7-8 days. now everything is set and when i tried to run the deployed project on rpi3 :
    The error popped out:
    relocation error: ./hello: symbol _ZTVN10_cxxabiv120_si_class_type_infoE, version Qt_5 not defined in file libQt5core.so.5 with link time reference.

    i have used follwing website for cross compilation
    https://wiki.qt.io/RaspberryPi2EGLFS

    this may be issue of old version libraries on rpi as i haev downloaded qt4-x11 on rpi as per this tutorial. am i correct ??? please help me, if anybody having any idea??

    K 1 Reply Last reply
    0
    • H hem1

      I am done with cross compiling Qt 5.10.1 for rpi 3 board and took me nearly 7-8 days. now everything is set and when i tried to run the deployed project on rpi3 :
      The error popped out:
      relocation error: ./hello: symbol _ZTVN10_cxxabiv120_si_class_type_infoE, version Qt_5 not defined in file libQt5core.so.5 with link time reference.

      i have used follwing website for cross compilation
      https://wiki.qt.io/RaspberryPi2EGLFS

      this may be issue of old version libraries on rpi as i haev downloaded qt4-x11 on rpi as per this tutorial. am i correct ??? please help me, if anybody having any idea??

      K Offline
      K Offline
      koahnig
      wrote on last edited by
      #2

      @hem1

      This may be a stupid question, but when you have done a cross compile of Qt 5.10.1 for rpi,why are you not using the output of your cross compile?

      Vote the answer(s) that helped you to solve your issue(s)

      H 1 Reply Last reply
      0
      • K koahnig

        @hem1

        This may be a stupid question, but when you have done a cross compile of Qt 5.10.1 for rpi,why are you not using the output of your cross compile?

        H Offline
        H Offline
        hem1
        wrote on last edited by
        #3

        @koahnig said in Qt project deployment on rpi 3 board:

        the output of your cross compi

        i am compiling a simple program on my desktop on which i have crosscompiled for rpi3 and then deploying on rpi and while executing program requires libraries which are already downloaded on rpi thats how things work, if i am not wrong?

        K 1 Reply Last reply
        0
        • H hem1

          @koahnig said in Qt project deployment on rpi 3 board:

          the output of your cross compi

          i am compiling a simple program on my desktop on which i have crosscompiled for rpi3 and then deploying on rpi and while executing program requires libraries which are already downloaded on rpi thats how things work, if i am not wrong?

          K Offline
          K Offline
          koahnig
          wrote on last edited by
          #4

          @hem1

          I have done the same, but for beaglebone. At least that is my understanding of what you describe.

          When you cross-compile Qt source for rpi or beaglebone you are generating all dynamic loadable libraries for execution on rpi and the library stubs for linking on a desktop.

          I have basically copied the cross-compiled Qt stuff to my beaglebone and use

          export LD_LIBRARY_PATH=/home/ubuntu/QtForBBB/lib:.
          

          on beaglebone before I am starting the cross-compiled application. In my case "/home/ubuntu/QtForBBB/lib" is the place of the cross-compiled libraries.
          I am lazy and upload my application to the home folder and start from there. Therefore, I had to add "." for my application to find its own dynamically loadable libraries.

          Note: I am a windows boy. Therefore, I am reducing my efforts on linux to a minimum, because I am not really used to work with linux.

          Vote the answer(s) that helped you to solve your issue(s)

          H 1 Reply Last reply
          1
          • K koahnig

            @hem1

            I have done the same, but for beaglebone. At least that is my understanding of what you describe.

            When you cross-compile Qt source for rpi or beaglebone you are generating all dynamic loadable libraries for execution on rpi and the library stubs for linking on a desktop.

            I have basically copied the cross-compiled Qt stuff to my beaglebone and use

            export LD_LIBRARY_PATH=/home/ubuntu/QtForBBB/lib:.
            

            on beaglebone before I am starting the cross-compiled application. In my case "/home/ubuntu/QtForBBB/lib" is the place of the cross-compiled libraries.
            I am lazy and upload my application to the home folder and start from there. Therefore, I had to add "." for my application to find its own dynamically loadable libraries.

            Note: I am a windows boy. Therefore, I am reducing my efforts on linux to a minimum, because I am not really used to work with linux.

            H Offline
            H Offline
            hem1
            wrote on last edited by
            #5

            @koahnig sry but i am a newbie i only understood half of what you said, mine also first experience with linux and am struggling a lot

            K 1 Reply Last reply
            0
            • H hem1

              @koahnig sry but i am a newbie i only understood half of what you said, mine also first experience with linux and am struggling a lot

              K Offline
              K Offline
              koahnig
              wrote on last edited by
              #6

              @hem1

              Do you have Qt installed on a desktop ?
              What is the OS there?

              Vote the answer(s) that helped you to solve your issue(s)

              H 1 Reply Last reply
              0
              • K koahnig

                @hem1

                Do you have Qt installed on a desktop ?
                What is the OS there?

                H Offline
                H Offline
                hem1
                wrote on last edited by
                #7

                @koahnig yes QT is installed Qt 5.10.1 ubuntu 16 is OS used

                K 1 Reply Last reply
                0
                • H hem1

                  @koahnig yes QT is installed Qt 5.10.1 ubuntu 16 is OS used

                  K Offline
                  K Offline
                  koahnig
                  wrote on last edited by
                  #8

                  @hem1

                  I guess you have installed Qt creator and the latest version of Qt library.
                  Qt creator is a "simple" IDE and helps you managing projects. It is using Qt libraries as well, but they have to be kept separately from the Qt libraries used for development.

                  The standard Qt libraries may be installed with your linux distro or you can update/install it with an online installer from Qt site. The difference is mainly the actuality of version. Since you have Qt 5.10.1 I assume that you picked already the online installer approach, which is fundamentally better since you have the direct hook to most recent updates.

                  The Qt library installation is in general based on dynamic loadable libraries. The different modules have separate libraries. For each module two separate libs are required. The stub lib will be basically linked statically to your application and tells it how to access the dynamically loadable libs. And of course there is also the dynamic loadable library itself.

                  Within the development process on a desktop you do not really notice those different libraries. However, when you want to deploy your application on to a different desktop, you need to supply your application and the dynamic library as used by that application.

                  When you develop for an embedded platform you need to cross-compile Qt libraries with a cross-compiler suitable for your embedded platform. With the cross-compilation you are generating adapted tools, but also the cross-compiled libraries similar as you have already installed for your desktop.

                  Building an application for an embedded requires using the cross-compiler and the library stubs generated with that cross-compiler. Deploying your application basically requires the linked application and the required cross-compiled dynamic loadable libraries. Those libraries are found in the "lib" folder of your cross-compilation of Qt libraries.

                  Since memory was not my concern, I simply copied the whole cross-compilation to my beaglebone. The export statement given above provided before is simply telling my application where the dynamic libs are to be found.

                  Note, that different versions of Qt libs downloaded to your rpi may not be compatible with the applications you have created. It looks that you found some Qt4 libraries, which are definetly not compatible with Qt5 cross-compilation.

                  Vote the answer(s) that helped you to solve your issue(s)

                  1 Reply Last reply
                  3
                  • H Offline
                    H Offline
                    hem1
                    wrote on last edited by
                    #9

                    @koahnig said in Qt project deployment on rpi 3 board:

                    y not be compatible with the applications you have created. It looks that you found some Qt4 libraries, which are definetly not compatible with Qt5 cross-compilation.

                    then how should i download qt5 libraries
                    i mean people have used qt4-x11 for their deployment with Qt5.8 so where is the issue i am not able to get it. do u have any idea how i can download Qt5 libraries?

                    K 1 Reply Last reply
                    0
                    • H hem1

                      @koahnig said in Qt project deployment on rpi 3 board:

                      y not be compatible with the applications you have created. It looks that you found some Qt4 libraries, which are definetly not compatible with Qt5 cross-compilation.

                      then how should i download qt5 libraries
                      i mean people have used qt4-x11 for their deployment with Qt5.8 so where is the issue i am not able to get it. do u have any idea how i can download Qt5 libraries?

                      K Offline
                      K Offline
                      koahnig
                      wrote on last edited by
                      #10

                      @hem1 said in Qt project deployment on rpi 3 board:

                      qt4-x11 for their deployment with Qt5.8

                      qt4 means Qt 4 libraries which are not even source compatible with Qt 5. There is no way that this is working in general.

                      You may find and use Qt5.8 compiled by someone, but you can use those only possibly with some luck with Qt5.8 libraries you have cross compiled. However, any version of Qt 4 is not compatible with any Qt 5 version.

                      My cross compilation of Qt gave me everything in a separate sub-folder on my desktop. Since I knew that all that stuff is cross-compiled for beaglebone, I simply used "scy" and copied it my beaglebone.

                      Vote the answer(s) that helped you to solve your issue(s)

                      1 Reply Last reply
                      2
                      • P Offline
                        P Offline
                        PaulMax
                        wrote on last edited by
                        #11

                        This error happens when you compile with one version but another one is found at runtime, either you need to deploy your libraries, plugins and qml and configured to be found by ld or compile for another version

                        Regards

                        1 Reply Last reply
                        1

                        • Login

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