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. QMYSQL driver not loaded - cross compiling for Raspberry PI 3
Forum Updated to NodeBB v4.3 + New Features

QMYSQL driver not loaded - cross compiling for Raspberry PI 3

Scheduled Pinned Locked Moved Solved Installation and Deployment
qmysqlcross compileraspberry pi 3
26 Posts 3 Posters 6.6k Views 1 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.
  • KroMignonK KroMignon

    @JarekT said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

    I would be very happy to receive any suggestion...

    First, I would suggest you to read documentation ==> https://doc.qt.io/qt-5/sql-driver.html#how-to-build-the-qmysql-plugin-on-unix-and-macos

    Then, check MySQL or MariaDB shared libs and headers are installed on your platform.
    Rerun qmake

    J Offline
    J Offline
    JarekT
    wrote on last edited by
    #3

    @KroMignon Thank you for your reply. Please tell me should I do it on target or on the host?

    The idea is to connect to the mysql installed on the target, so I think it should be done on the target. My MySQL database location is /var/lib, so I tried this:

    c61f7c61-7868-4f54-b05e-50d5843508cc-image.png

    but it looks like there is no qmake command available. I tried to find for any qmake file in the target:
    75fa9bd3-4fc7-43ea-b904-79ca70901f90-image.png

    KroMignonK 1 Reply Last reply
    0
    • J JarekT

      @KroMignon Thank you for your reply. Please tell me should I do it on target or on the host?

      The idea is to connect to the mysql installed on the target, so I think it should be done on the target. My MySQL database location is /var/lib, so I tried this:

      c61f7c61-7868-4f54-b05e-50d5843508cc-image.png

      but it looks like there is no qmake command available. I tried to find for any qmake file in the target:
      75fa9bd3-4fc7-43ea-b904-79ca70901f90-image.png

      KroMignonK Offline
      KroMignonK Offline
      KroMignon
      wrote on last edited by
      #4

      @JarekT said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

      Please tell me should I do it on target or on the host?

      On the target of course.
      Did you cross-compile Qt for you RPI or did you use a precompiled version?

      J 1 Reply Last reply
      0
      • KroMignonK KroMignon

        @JarekT said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

        Please tell me should I do it on target or on the host?

        On the target of course.
        Did you cross-compile Qt for you RPI or did you use a precompiled version?

        J Offline
        J Offline
        JarekT
        wrote on last edited by
        #5

        @KroMignon I did cross-compile according to this procedure: LINK

        KroMignonK 2 Replies Last reply
        0
        • J JarekT

          @KroMignon I did cross-compile according to this procedure: LINK

          KroMignonK Offline
          KroMignonK Offline
          KroMignon
          wrote on last edited by
          #6
          This post is deleted!
          1 Reply Last reply
          0
          • J JarekT

            @KroMignon I did cross-compile according to this procedure: LINK

            KroMignonK Offline
            KroMignonK Offline
            KroMignon
            wrote on last edited by
            #7

            @JarekT So you have to add mysql libs on your RPI before creating the sysroot

            on RPI

            sudo apt-get install libmysqlclient-dev libmysqld-dev
            

            After that you should be able to cross-compile the plugin

            J 1 Reply Last reply
            1
            • KroMignonK KroMignon

              @JarekT So you have to add mysql libs on your RPI before creating the sysroot

              on RPI

              sudo apt-get install libmysqlclient-dev libmysqld-dev
              

              After that you should be able to cross-compile the plugin

              J Offline
              J Offline
              JarekT
              wrote on last edited by JarekT
              #8

              @KroMignon When I tried to install those packages I got information that mariadb counterparts are available. So I tried to install them and it appeared that libmariadb-dev-compat,libmariadb-dev I already had, but libmariadbd-dev I didn't have so I installed it.

              How can I cross-compile the plugin?

              KroMignonK 1 Reply Last reply
              0
              • J JarekT

                @KroMignon When I tried to install those packages I got information that mariadb counterparts are available. So I tried to install them and it appeared that libmariadb-dev-compat,libmariadb-dev I already had, but libmariadbd-dev I didn't have so I installed it.

                How can I cross-compile the plugin?

                KroMignonK Offline
                KroMignonK Offline
                KroMignon
                wrote on last edited by
                #9

                @JarekT said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

                How can I cross-compile the plugin?

                After installing the missed packages, you have to recreate/update the sysroot.
                Then restart qmake in the sqldrivers directory (I suppose RPI sysroot is located at /home/embsys/raspi/sysroot):

                /home/embsys/raspi/qtbase/bin/qmake -- MYSQL_PREFIX=/home/embsys/raspi/sysroot/usr/local
                
                make
                make install
                
                jsulmJ J 2 Replies Last reply
                0
                • KroMignonK KroMignon

                  @JarekT said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

                  How can I cross-compile the plugin?

                  After installing the missed packages, you have to recreate/update the sysroot.
                  Then restart qmake in the sqldrivers directory (I suppose RPI sysroot is located at /home/embsys/raspi/sysroot):

                  /home/embsys/raspi/qtbase/bin/qmake -- MYSQL_PREFIX=/home/embsys/raspi/sysroot/usr/local
                  
                  make
                  make install
                  
                  jsulmJ Offline
                  jsulmJ Offline
                  jsulm
                  Lifetime Qt Champion
                  wrote on last edited by
                  #10

                  @KroMignon said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

                  Then restart qmake in the sqldrivers directory

                  I would suggest to do out of source builds to avoid problems with build artefacts from previous builds.

                  https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  0
                  • KroMignonK KroMignon

                    @JarekT said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

                    How can I cross-compile the plugin?

                    After installing the missed packages, you have to recreate/update the sysroot.
                    Then restart qmake in the sqldrivers directory (I suppose RPI sysroot is located at /home/embsys/raspi/sysroot):

                    /home/embsys/raspi/qtbase/bin/qmake -- MYSQL_PREFIX=/home/embsys/raspi/sysroot/usr/local
                    
                    make
                    make install
                    
                    J Offline
                    J Offline
                    JarekT
                    wrote on last edited by
                    #11

                    @KroMignon said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

                    you have to recreate/update the sysroot

                    In the ~/raspi folder I did this (192.168.0.100 is IP of RPi):
                    rsync -avz pi@192.168.0.100:/lib sysroot
                    rsync -avz pi@192.168.0.100:/usr/include sysroot/usr
                    rsync -avz pi@192.168.0.100:/usr/lib sysroot/usr
                    rsync -avz pi@192.168.0.100:/opt/vc sysroot/opt

                    Is this what you meant by "you have to recreate/update the sysroot"?

                    After that I did qmake and I got the following results:
                    75f17afe-7dfe-451b-b5d2-097bd0b6605b-image.png

                    Unfortunately I don't see that MySql was configured...

                    Is the prefix "MYSQL_PREFIX=/home/embsys/raspi/sysroot/usr/local" correct and is it enough?

                    @jsulm Before I did qmake I deleted whole src folder and extracted it again. Only then I did qmake. Is this what you meant?

                    KroMignonK 1 Reply Last reply
                    0
                    • J JarekT

                      @KroMignon said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

                      you have to recreate/update the sysroot

                      In the ~/raspi folder I did this (192.168.0.100 is IP of RPi):
                      rsync -avz pi@192.168.0.100:/lib sysroot
                      rsync -avz pi@192.168.0.100:/usr/include sysroot/usr
                      rsync -avz pi@192.168.0.100:/usr/lib sysroot/usr
                      rsync -avz pi@192.168.0.100:/opt/vc sysroot/opt

                      Is this what you meant by "you have to recreate/update the sysroot"?

                      After that I did qmake and I got the following results:
                      75f17afe-7dfe-451b-b5d2-097bd0b6605b-image.png

                      Unfortunately I don't see that MySql was configured...

                      Is the prefix "MYSQL_PREFIX=/home/embsys/raspi/sysroot/usr/local" correct and is it enough?

                      @jsulm Before I did qmake I deleted whole src folder and extracted it again. Only then I did qmake. Is this what you meant?

                      KroMignonK Offline
                      KroMignonK Offline
                      KroMignon
                      wrote on last edited by
                      #12

                      @JarekT said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

                      Is the prefix "MYSQL_PREFIX=/home/embsys/raspi/sysroot/usr/local" correct and is it enough?

                      I don't really know, I don't have a RPI to test it.
                      But according to this post ==> https://raspberrypi.stackexchange.com/a/101366
                      You should probably use this:

                      /home/embsys/raspi/qtbase/bin/qmake -- MYSQL_PREFIX=/home/embsys/raspi/sysroot/usr/lib/arm-linux-gnueabihf
                      
                      J 1 Reply Last reply
                      0
                      • KroMignonK KroMignon

                        @JarekT said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

                        Is the prefix "MYSQL_PREFIX=/home/embsys/raspi/sysroot/usr/local" correct and is it enough?

                        I don't really know, I don't have a RPI to test it.
                        But according to this post ==> https://raspberrypi.stackexchange.com/a/101366
                        You should probably use this:

                        /home/embsys/raspi/qtbase/bin/qmake -- MYSQL_PREFIX=/home/embsys/raspi/sysroot/usr/lib/arm-linux-gnueabihf
                        
                        J Offline
                        J Offline
                        JarekT
                        wrote on last edited by
                        #13

                        @KroMignon I've changed the prefix but looks like it didn't help..

                        1ac29b64-8a32-4f97-852a-3f6a26e692cc-image.png

                        What can I do "remove any leftovers from the previous build" before I do reconfiguration?

                        jsulmJ 1 Reply Last reply
                        0
                        • J JarekT

                          @KroMignon I've changed the prefix but looks like it didn't help..

                          1ac29b64-8a32-4f97-852a-3f6a26e692cc-image.png

                          What can I do "remove any leftovers from the previous build" before I do reconfiguration?

                          jsulmJ Offline
                          jsulmJ Offline
                          jsulm
                          Lifetime Qt Champion
                          wrote on last edited by
                          #14

                          @JarekT said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

                          What can I do "remove any leftovers from the previous build" before I do reconfiguration?

                          Extract again the source code. To avoid this do out of source builds:

                          mkdir build
                          cd build
                          qmake PATH_TO_SOURCE
                          

                          https://forum.qt.io/topic/113070/qt-code-of-conduct

                          J 1 Reply Last reply
                          0
                          • jsulmJ jsulm

                            @JarekT said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

                            What can I do "remove any leftovers from the previous build" before I do reconfiguration?

                            Extract again the source code. To avoid this do out of source builds:

                            mkdir build
                            cd build
                            qmake PATH_TO_SOURCE
                            
                            J Offline
                            J Offline
                            JarekT
                            wrote on last edited by
                            #15

                            @jsulm I've extracted again the sources. But I'm not sure if I understand what you meant by: "To avoid this do out of source builds". Do you mean that after I have newly extracted source code, I should always do the qmake in a new folder (eg. "build" as you mentioned) so that I do not affect the source code and in this way I can always do fresh compilation without the need to extract the source code files again?

                            Assuming that this is what you meant I did this:
                            0c2b3ccd-161b-48af-ba8f-3ab87a8755bc-image.png

                            As I can see mysql was not compiled... Could you please check if the paths and prefixes are correct?...

                            jsulmJ 1 Reply Last reply
                            0
                            • J JarekT

                              @jsulm I've extracted again the sources. But I'm not sure if I understand what you meant by: "To avoid this do out of source builds". Do you mean that after I have newly extracted source code, I should always do the qmake in a new folder (eg. "build" as you mentioned) so that I do not affect the source code and in this way I can always do fresh compilation without the need to extract the source code files again?

                              Assuming that this is what you meant I did this:
                              0c2b3ccd-161b-48af-ba8f-3ab87a8755bc-image.png

                              As I can see mysql was not compiled... Could you please check if the paths and prefixes are correct?...

                              jsulmJ Offline
                              jsulmJ Offline
                              jsulm
                              Lifetime Qt Champion
                              wrote on last edited by
                              #16

                              @JarekT said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

                              I should always do the qmake in a new folder

                              Yes.

                              To check why it still does not work please see what is in configure.log file.

                              https://forum.qt.io/topic/113070/qt-code-of-conduct

                              J 1 Reply Last reply
                              0
                              • jsulmJ jsulm

                                @JarekT said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

                                I should always do the qmake in a new folder

                                Yes.

                                To check why it still does not work please see what is in configure.log file.

                                J Offline
                                J Offline
                                JarekT
                                wrote on last edited by JarekT
                                #17

                                @jsulm Here is what I have in the config.log (I'm showing here only the part that contains information about the failures)

                                b3572182-0f72-48a3-87cb-5f6a8ed4bafb-image.png

                                Could you please help me understand those problems?

                                KroMignonK 1 Reply Last reply
                                0
                                • J JarekT

                                  @jsulm Here is what I have in the config.log (I'm showing here only the part that contains information about the failures)

                                  b3572182-0f72-48a3-87cb-5f6a8ed4bafb-image.png

                                  Could you please help me understand those problems?

                                  KroMignonK Offline
                                  KroMignonK Offline
                                  KroMignon
                                  wrote on last edited by
                                  #18

                                  @JarekT said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

                                  Could you please help me understand those problems?

                                  Can you says which is the local path where you have put the sysroot? I supposed it was /home/embsys/raspi/sysroot.
                                  Then search in this path where is located libmysqlclient with find:

                                  find /home/embsys/raspi/sysroot -name libmysqlclient*.*
                                  

                                  Then use the path to configure/compile your plugin:

                                  /home/embsys/raspi/qtbase/bin/qmake -- MYSQL_PREFIX=<lib_mysqlclient_path>
                                  
                                  J 1 Reply Last reply
                                  0
                                  • KroMignonK KroMignon

                                    @JarekT said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

                                    Could you please help me understand those problems?

                                    Can you says which is the local path where you have put the sysroot? I supposed it was /home/embsys/raspi/sysroot.
                                    Then search in this path where is located libmysqlclient with find:

                                    find /home/embsys/raspi/sysroot -name libmysqlclient*.*
                                    

                                    Then use the path to configure/compile your plugin:

                                    /home/embsys/raspi/qtbase/bin/qmake -- MYSQL_PREFIX=<lib_mysqlclient_path>
                                    
                                    J Offline
                                    J Offline
                                    JarekT
                                    wrote on last edited by
                                    #19

                                    @KroMignon said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

                                    Can you says which is the local path where you have put the sysroot? I supposed it was /home/embsys/raspi/sysroot.

                                    Yes, this is my sysroot. I did it as you can see below
                                    2027e562-be0c-446d-9197-b0c4ae8404a8-image.png

                                    This command I tried also before and the results are unsuccessful as before..
                                    Here I'm configuring/compiling the plugin using sqldriver.pro file, but I also read somewhere that mysql.pro (/home/embsys/raspi/qt-everywhere-src-5.12.3/qtbase/src/plugins/sqldrivers/mysql/mysql.pro) file should compiled. Do you know anything about it?

                                    1 Reply Last reply
                                    0
                                    • J Offline
                                      J Offline
                                      JarekT
                                      wrote on last edited by JarekT
                                      #20

                                      Another idea: shouldn't I configure qmake itself before I try to use it to compile the plugin?

                                      That was my configure command when I was doing cross-compiling configuration (as in the LINK)

                                      ./configure -release -opengl es2 -device linux-rasp-pi3-g++ -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -opensource -confirm-license -make libs -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -no-use-gold-linker -v -no-gbm

                                      The above doesn't include mysql feature (should it??)

                                      jsulmJ 1 Reply Last reply
                                      0
                                      • J JarekT

                                        Another idea: shouldn't I configure qmake itself before I try to use it to compile the plugin?

                                        That was my configure command when I was doing cross-compiling configuration (as in the LINK)

                                        ./configure -release -opengl es2 -device linux-rasp-pi3-g++ -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -opensource -confirm-license -make libs -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -no-use-gold-linker -v -no-gbm

                                        The above doesn't include mysql feature (should it??)

                                        jsulmJ Offline
                                        jsulmJ Offline
                                        jsulm
                                        Lifetime Qt Champion
                                        wrote on last edited by
                                        #21

                                        @JarekT said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

                                        shouldn't I configure qmake itself

                                        What do you want to configure?

                                        https://forum.qt.io/topic/113070/qt-code-of-conduct

                                        J 1 Reply Last reply
                                        0
                                        • jsulmJ jsulm

                                          @JarekT said in QMYSQL driver not loaded - cross compiling for Raspberry PI 3:

                                          shouldn't I configure qmake itself

                                          What do you want to configure?

                                          J Offline
                                          J Offline
                                          JarekT
                                          wrote on last edited by
                                          #22

                                          @jsulm Sorry if the way I explained it was not correct. I meant that when I was preparing the framework for cross-compilation in the folder /home/embsys/raspi/qtbase I did

                                          ./configure -release -opengl es2 -device linux-rasp-pi3-g++ -device-option CROSS_COMPILE=~/raspi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf- -sysroot ~/raspi/sysroot -opensource -confirm-license -make libs -prefix /usr/local/qt5pi -extprefix ~/raspi/qt5pi -hostprefix ~/raspi/qt5 -no-use-gold-linker -v -no-gbm

                                          Should it contain something about mysql?

                                          jsulmJ 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