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. MySQL Driver not found (Qt5 MinGW32)
QtWS25 Last Chance

MySQL Driver not found (Qt5 MinGW32)

Scheduled Pinned Locked Moved Solved Installation and Deployment
22 Posts 3 Posters 5.5k 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.
  • starryeyedS Offline
    starryeyedS Offline
    starryeyed
    wrote on last edited by
    #1

    Hello. I want to figure out how to launch built application (release) in the same way that Qt Creator launches it. Basically, if I point the app to path with libmysql.dll (using either QCoreApplication::setLibraryPaths() or qt.conf) it still will say "Driver not found". Moreover, even if I actually install Qt on target computer and rebuild the app, the only way to launch it normally is still from the Qt Creator, so I feel like I'm missing something. Maybe, proper "LIBS" or "INCLUDEPATH" in .pro file? I've tried different things, and I've tried combining those approaches, still no luck

    jsulmJ 1 Reply Last reply
    0
    • starryeyedS starryeyed

      Hello. I want to figure out how to launch built application (release) in the same way that Qt Creator launches it. Basically, if I point the app to path with libmysql.dll (using either QCoreApplication::setLibraryPaths() or qt.conf) it still will say "Driver not found". Moreover, even if I actually install Qt on target computer and rebuild the app, the only way to launch it normally is still from the Qt Creator, so I feel like I'm missing something. Maybe, proper "LIBS" or "INCLUDEPATH" in .pro file? I've tried different things, and I've tried combining those approaches, still no luck

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

      @starryeyed Do you use http://doc.qt.io/qt-5/windows-deployment.html? Do you deploy Qt plug-ins used by your app?

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

      starryeyedS 1 Reply Last reply
      2
      • jsulmJ jsulm

        @starryeyed Do you use http://doc.qt.io/qt-5/windows-deployment.html? Do you deploy Qt plug-ins used by your app?

        starryeyedS Offline
        starryeyedS Offline
        starryeyed
        wrote on last edited by
        #3

        @jsulm I tried official windeployqt.exe. It does not put "libmysql.dll" into the target directory, so I feel like when launching in my dev. environment the driver gets detected "unintentionally", and I yet have to figure out how to make app want that dll. Or windeployqt never copies 3rd party dlls, even if they're properly listed as plugins/etc.?
        Here's output of windeployqt, even though I have separately installed MinGW 5.3.0 directory in my Path env. variable, it still says "can't find GCC"

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

          Hi and welcome to devnet,

          You can modify the PATH environment variable in that console to point to your MinGW installation so the related dependencies can be found.

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

          starryeyedS 1 Reply Last reply
          0
          • SGaistS SGaist

            Hi and welcome to devnet,

            You can modify the PATH environment variable in that console to point to your MinGW installation so the related dependencies can be found.

            starryeyedS Offline
            starryeyedS Offline
            starryeyed
            wrote on last edited by
            #5

            @SGaist the problem is that required paths are already in %path%...
            One is C:\Qt\5.10.1\mingw53_32\bin
            The other is C:\Qt\Tools\mingw530_32\bin

            jsulmJ 1 Reply Last reply
            0
            • starryeyedS starryeyed

              @SGaist the problem is that required paths are already in %path%...
              One is C:\Qt\5.10.1\mingw53_32\bin
              The other is C:\Qt\Tools\mingw530_32\bin

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

              @starryeyed What about C:\Qt\Tools\mingw530_32\lib and its subdirectories?

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

              starryeyedS 1 Reply Last reply
              1
              • jsulmJ jsulm

                @starryeyed What about C:\Qt\Tools\mingw530_32\lib and its subdirectories?

                starryeyedS Offline
                starryeyedS Offline
                starryeyed
                wrote on last edited by
                #7

                @jsulm I've added the "lib" directory to %path% and now windeployqt does not produce any errors, here's it's current output. The list of files it copies still haven't change as far as I see, and it still doesn't include libmysql.dll, though I've tried adding these lines to .pro file

                
                win32: LIBS += -L"$$PWD/../../../../Program Files (x86)/MySQL/MySQL Connector C 6.1/lib/" -llibmysql
                
                INCLUDEPATH += "$$PWD/../../../../Program Files (x86)/MySQL/MySQL Connector C 6.1/include"
                DEPENDPATH += "$$PWD/../../../../Program Files (x86)/MySQL/MySQL Connector C 6.1/include"
                
                
                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #8

                  I'm currently not sure windeployqt tries to find the dependencies of the plugins.

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

                  starryeyedS 1 Reply Last reply
                  1
                  • SGaistS SGaist

                    I'm currently not sure windeployqt tries to find the dependencies of the plugins.

                    starryeyedS Offline
                    starryeyedS Offline
                    starryeyed
                    wrote on last edited by
                    #9

                    @SGaist So probably I shouldn't care much about what windeployqt copies and just add the missing dll myself, but can you give any hints on forcing the application to find it? As I've mentioned, I tried using both ::setLibraryPaths() and qt.conf to add/override the directory where it looks for plugins, no results :(
                    qt.conf for example normally overrides any paths, but the .exe is still missing the same driver, I don't understand what is missing

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

                      You should have the external dependencies (like OpenSSL etc.) in the same folder as the application in order for your application to find them.

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

                      starryeyedS 1 Reply Last reply
                      0
                      • SGaistS SGaist

                        You should have the external dependencies (like OpenSSL etc.) in the same folder as the application in order for your application to find them.

                        starryeyedS Offline
                        starryeyedS Offline
                        starryeyed
                        wrote on last edited by
                        #11

                        @SGaist I already did numerous tests on different machines, now tried it in IE's dev. image, still the same. "Driver not found".0_1523838234852_prahamap.png
                        I tried outputting library paths as QMessageBoxes just to see if the path is really correctly set, and it is... Here are [0] and [1] elements of QStringList that libraryPaths() returns after setting them...0_1523839504728_pathtomarosh.PNG

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

                          Did you check whether libmysql.dll itself has dependencies ?

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

                          starryeyedS 1 Reply Last reply
                          0
                          • SGaistS SGaist

                            Did you check whether libmysql.dll itself has dependencies ?

                            starryeyedS Offline
                            starryeyedS Offline
                            starryeyed
                            wrote on last edited by starryeyed
                            #13

                            @SGaist I can tell you two objective obesrvations, but I really don't know what to get from them.

                            • When I realised I also need to build for win32 (I initially didn't plan), instead of configuring MXE I just installed Qt on my Windows system, and copied project as it was. Everything built fine, tho when launching for 1st time I got the same error you can see on screenshot. After a google search I understood that just installing mysql C connector (which was enough in Linux) isn't enough, and copied dll to the bin folder of minGW. Until current failures in deployment I haven't encountered any plugin/driver/library related problems.

                            • If I become desperate and install the whole dev environment (qtcreator+mingw+connector's dll) onto target machine, I still can only run the app from qt creator, and the only way to fix that is to copy .exe into bin folder of mingw...

                            I guess the dll has no dependencies, otherwise I'd have to solve them too for myself. I think it's very important to understand how launch by qt creator differs from regular launch-by-shortcut. I'm sure there's some lowkey qt trickery going on which I miss and therefore fail to "show the way" to app...

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

                              Qt Creator modifies the PATH environment variable to include the Qt version used by the Kit you selected to build your application.

                              You can check its content in the Run part of the Project panel.

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

                              starryeyedS 1 Reply Last reply
                              1
                              • SGaistS SGaist

                                Qt Creator modifies the PATH environment variable to include the Qt version used by the Kit you selected to build your application.

                                You can check its content in the Run part of the Project panel.

                                starryeyedS Offline
                                starryeyedS Offline
                                starryeyed
                                wrote on last edited by starryeyed
                                #15

                                @SGaist Thank you for the insight! Now I have a theory. Because the application is used to find needed dlls together with everything else in QTDIR, it expects the same variable to be set on target PC. Or at least, the "Path" to contain the same things as mingw/bin directory contains on my dev machine.
                                Thing that does not add up in my theory:
                                When I just moved Linux=>Windows and built for 1st time, it was enough to copy libmysql.dll to mingw/bin path.
                                Now, if I paste that dll to Windows\System32 on a VM (which is obviously in Path), it still says "Driver not loaded". What am I missing?

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

                                  As I wrote before, check the .dlls with Dependency Walker to see if they have any dependencies. You can also run your application with the QT_DEBUG_PLUGINS environment variable set to one to gather more information about what is happening. You'll have to do that from the console otherwise you won't see much information.

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

                                  starryeyedS 1 Reply Last reply
                                  1
                                  • SGaistS SGaist

                                    As I wrote before, check the .dlls with Dependency Walker to see if they have any dependencies. You can also run your application with the QT_DEBUG_PLUGINS environment variable set to one to gather more information about what is happening. You'll have to do that from the console otherwise you won't see much information.

                                    starryeyedS Offline
                                    starryeyedS Offline
                                    starryeyed
                                    wrote on last edited by starryeyed
                                    #17

                                    @SGaist Unforunately, didn't succeed. Tried Dependency Walker, and it will simply freeze while profiling qt app with plugins, not just mine. I've googled it, look. The dude got the same problem as me with trying to use DW, it just hangs on IMM32.DLL.
                                    I've tried opening the dll itself, here's the list of it's dependencies. 0_1524063249970_pathtomarosh.PNG
                                    I'm sure that vcruntime140.DLL causes problems, but how do I learn which Microsoft VC++ Redistributable it belongs to? I got all versions installed on dev machine, 2005-2017. Will 2008 one do?

                                    I didn't understand how to use that environment variable. I've set it to "1" inside VM as an environment variable (like Path), and launching program didn't change it... Can it really write to system variables? Maybe there's a way to launch it from cmd or with some special software? Here's a shot of cmd launch .0_1524059375388_prahamap.png

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

                                      AFAIK VSRUNTIME140 belongs to VS2015.

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

                                      starryeyedS 1 Reply Last reply
                                      0
                                      • starryeyedS Offline
                                        starryeyedS Offline
                                        starryeyed
                                        wrote on last edited by
                                        #19
                                        This post is deleted!
                                        1 Reply Last reply
                                        0
                                        • SGaistS SGaist

                                          AFAIK VSRUNTIME140 belongs to VS2015.

                                          starryeyedS Offline
                                          starryeyedS Offline
                                          starryeyed
                                          wrote on last edited by
                                          #20

                                          @SGaist Please guide me from a point of supposed fresh install of Windows 10. After installing x86 version of aforementioned Visual C++ 2015 Redistributable,
                                          I tried recreating "run environment" of Qt Creator, by setting the "Path" env. variable in the VM to same contents as in Qt Creator. I don't know if I'm missing any of the env. variables, but I would rather not invest into copying them manually, 1 by 1... Is there any automated tool to set env. variables or I have to come up with my own script? Also, can you please elaborate on QT_DEBUG_PLUGINS? I understood that I'm expected to set it to 1, but where is the output? To this variable, to some log file or?

                                          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