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. Added QMysql plugin to Qt Creator project on MacOS Ventura 13.4

Added QMysql plugin to Qt Creator project on MacOS Ventura 13.4

Scheduled Pinned Locked Moved Solved General and Desktop
53 Posts 4 Posters 25.1k 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 SGaist

    Did you ensure that the plugin was put in the plugins folder ? Did you build it for both debug and release ? Did you copy both variants to the appropriate subfolder ?

    B Offline
    B Offline
    BushyAxis793
    wrote on last edited by
    #31

    @SGaist I think I did.

    Copied files from

    /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/build-sqldrivers/plugins/sqldrivers

    to

    /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers

    Builded debug and release

    8f4769b6-5d99-46a9-a979-3a9934154088-image.png

    SGaistS 1 Reply Last reply
    0
    • B BushyAxis793

      @SGaist I think I did.

      Copied files from

      /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/build-sqldrivers/plugins/sqldrivers

      to

      /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers

      Builded debug and release

      8f4769b6-5d99-46a9-a979-3a9934154088-image.png

      SGaistS Offline
      SGaistS Offline
      SGaist
      Lifetime Qt Champion
      wrote on last edited by
      #32

      As already requested, stop working in the installation tree, create the build dir completely outside of it.

      Start your application with the QT_DEBUG_PLUGINS environment variable set to 1 to see what is happening with 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

      B 1 Reply Last reply
      1
      • SGaistS SGaist

        As already requested, stop working in the installation tree, create the build dir completely outside of it.

        Start your application with the QT_DEBUG_PLUGINS environment variable set to 1 to see what is happening with the plugins.

        B Offline
        B Offline
        BushyAxis793
        wrote on last edited by
        #33

        @SGaist Ok sorry. I delete build-sqldrivers from Qt directory and build one more time on my desktop. I input QT_DEBUG_PLUGINS in my code and I got this:

        qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/platforms" ...
        qt.core.plugin.factoryloader: looking at "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/platforms/libqoffscreen.dylib"
        qt.core.plugin.loader: Found metadata in lib /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/platforms/libqoffscreen.dylib, metadata=
        {
            "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
            "MetaData": {
                "Keys": [
                    "offscreen"
                ]
            },
            "archlevel": 0,
            "className": "QOffscreenIntegrationPlugin",
            "debug": false,
            "version": 394496
        }
        
        
        qt.core.plugin.factoryloader: Got keys from plugin meta data QList("offscreen")
        qt.core.plugin.factoryloader: looking at "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/platforms/libqminimal.dylib"
        qt.core.plugin.loader: Found metadata in lib /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/platforms/libqminimal.dylib, metadata=
        {
            "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
            "MetaData": {
                "Keys": [
                    "minimal"
                ]
            },
            "archlevel": 0,
            "className": "QMinimalIntegrationPlugin",
            "debug": false,
            "version": 394496
        }
        
        
        qt.core.plugin.factoryloader: Got keys from plugin meta data QList("minimal")
        qt.core.plugin.factoryloader: looking at "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/platforms/libqcocoa.dylib"
        qt.core.plugin.loader: Found metadata in lib /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/platforms/libqcocoa.dylib, metadata=
        {
            "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
            "MetaData": {
                "Keys": [
                    "cocoa"
                ]
            },
            "archlevel": 0,
            "className": "QCocoaIntegrationPlugin",
            "debug": false,
            "version": 394496
        }
        
        
        qt.core.plugin.factoryloader: Got keys from plugin meta data QList("cocoa")
        qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Documents/GitHub/build-ATLAS-Qt_6_5_0_for_macOS-Release/platforms" ...
        qt.core.library: "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/platforms/libqcocoa.dylib" loaded library
        qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/platformthemes" ...
        qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Documents/GitHub/build-ATLAS-Qt_6_5_0_for_macOS-Release/platformthemes" ...
        qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/styles" ...
        qt.core.plugin.factoryloader: looking at "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/styles/libqmacstyle.dylib"
        qt.core.plugin.loader: Found metadata in lib /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/styles/libqmacstyle.dylib, metadata=
        {
            "IID": "org.qt-project.Qt.QStyleFactoryInterface",
            "MetaData": {
                "Keys": [
                    "macOS"
                ]
            },
            "archlevel": 0,
            "className": "QMacStylePlugin",
            "debug": false,
            "version": 394496
        }
        
        
        qt.core.plugin.factoryloader: Got keys from plugin meta data QList("macos")
        qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Documents/GitHub/build-ATLAS-Qt_6_5_0_for_macOS-Release/styles" ...
        qt.core.library: "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/styles/libqmacstyle.dylib" loaded library
        qt.qpa.fonts: Populating font family aliases took 50 ms. Replace uses of missing font family "Roboto" with one that exists to avoid this cost. 
        qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/networkaccess" ...
        qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Documents/GitHub/build-ATLAS-Qt_6_5_0_for_macOS-Release/networkaccess" ...
        qt.core.library: "resolv" loaded library
        qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers" ...
        qt.core.plugin.factoryloader: looking at "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlite.dylib"
        qt.core.plugin.loader: Found metadata in lib /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlite.dylib, metadata=
        {
            "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
            "MetaData": {
                "Keys": [
                    "QSQLITE"
                ]
            },
            "archlevel": 0,
            "className": "QSQLiteDriverPlugin",
            "debug": false,
            "version": 394496
        }
        
        
        qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QSQLITE")
        qt.core.plugin.factoryloader: looking at "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlmysql.dylib"
        qt.core.plugin.loader: Failed to find metadata in lib /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlmysql.dylib: '/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlmysql.dylib' is not a valid Mach-O binary (wrong architecture)
        qt.core.plugin.factoryloader: "Failed to extract plugin meta data from '/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlmysql.dylib': '/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlmysql.dylib' is not a valid Mach-O binary (wrong architecture)" 
                 not a plugin
        qt.core.plugin.factoryloader: looking at "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlodbc.dylib"
        qt.core.plugin.loader: Found metadata in lib /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlodbc.dylib, metadata=
        {
            "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
            "MetaData": {
                "Keys": [
                    "QODBC"
                ]
            },
            "archlevel": 0,
            "className": "QODBCDriverPlugin",
            "debug": false,
            "version": 394496
        }
        
        
        qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QODBC")
        qt.core.plugin.factoryloader: looking at "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlpsql.dylib"
        qt.core.plugin.loader: Found metadata in lib /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlpsql.dylib, metadata=
        {
            "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
            "MetaData": {
                "Keys": [
                    "QPSQL"
                ]
            },
            "archlevel": 0,
            "className": "QPSQLDriverPlugin",
            "debug": false,
            "version": 394496
        }
        
        
        qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QPSQL")
        qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Documents/GitHub/build-ATLAS-Qt_6_5_0_for_macOS-Release/sqldrivers" ...
        QSqlDatabase: QMYSQL driver not loaded
        QSqlDatabase: available drivers: QSQLITE QODBC QPSQL
        qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/accessible" ...
        qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Documents/GitHub/build-ATLAS-Qt_6_5_0_for_macOS-Release/accessible" ...
        
        SGaistS 1 Reply Last reply
        0
        • B BushyAxis793

          @SGaist Ok sorry. I delete build-sqldrivers from Qt directory and build one more time on my desktop. I input QT_DEBUG_PLUGINS in my code and I got this:

          qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/platforms" ...
          qt.core.plugin.factoryloader: looking at "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/platforms/libqoffscreen.dylib"
          qt.core.plugin.loader: Found metadata in lib /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/platforms/libqoffscreen.dylib, metadata=
          {
              "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
              "MetaData": {
                  "Keys": [
                      "offscreen"
                  ]
              },
              "archlevel": 0,
              "className": "QOffscreenIntegrationPlugin",
              "debug": false,
              "version": 394496
          }
          
          
          qt.core.plugin.factoryloader: Got keys from plugin meta data QList("offscreen")
          qt.core.plugin.factoryloader: looking at "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/platforms/libqminimal.dylib"
          qt.core.plugin.loader: Found metadata in lib /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/platforms/libqminimal.dylib, metadata=
          {
              "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
              "MetaData": {
                  "Keys": [
                      "minimal"
                  ]
              },
              "archlevel": 0,
              "className": "QMinimalIntegrationPlugin",
              "debug": false,
              "version": 394496
          }
          
          
          qt.core.plugin.factoryloader: Got keys from plugin meta data QList("minimal")
          qt.core.plugin.factoryloader: looking at "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/platforms/libqcocoa.dylib"
          qt.core.plugin.loader: Found metadata in lib /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/platforms/libqcocoa.dylib, metadata=
          {
              "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
              "MetaData": {
                  "Keys": [
                      "cocoa"
                  ]
              },
              "archlevel": 0,
              "className": "QCocoaIntegrationPlugin",
              "debug": false,
              "version": 394496
          }
          
          
          qt.core.plugin.factoryloader: Got keys from plugin meta data QList("cocoa")
          qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Documents/GitHub/build-ATLAS-Qt_6_5_0_for_macOS-Release/platforms" ...
          qt.core.library: "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/platforms/libqcocoa.dylib" loaded library
          qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/platformthemes" ...
          qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Documents/GitHub/build-ATLAS-Qt_6_5_0_for_macOS-Release/platformthemes" ...
          qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/styles" ...
          qt.core.plugin.factoryloader: looking at "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/styles/libqmacstyle.dylib"
          qt.core.plugin.loader: Found metadata in lib /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/styles/libqmacstyle.dylib, metadata=
          {
              "IID": "org.qt-project.Qt.QStyleFactoryInterface",
              "MetaData": {
                  "Keys": [
                      "macOS"
                  ]
              },
              "archlevel": 0,
              "className": "QMacStylePlugin",
              "debug": false,
              "version": 394496
          }
          
          
          qt.core.plugin.factoryloader: Got keys from plugin meta data QList("macos")
          qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Documents/GitHub/build-ATLAS-Qt_6_5_0_for_macOS-Release/styles" ...
          qt.core.library: "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/styles/libqmacstyle.dylib" loaded library
          qt.qpa.fonts: Populating font family aliases took 50 ms. Replace uses of missing font family "Roboto" with one that exists to avoid this cost. 
          qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/networkaccess" ...
          qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Documents/GitHub/build-ATLAS-Qt_6_5_0_for_macOS-Release/networkaccess" ...
          qt.core.library: "resolv" loaded library
          qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers" ...
          qt.core.plugin.factoryloader: looking at "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlite.dylib"
          qt.core.plugin.loader: Found metadata in lib /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlite.dylib, metadata=
          {
              "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
              "MetaData": {
                  "Keys": [
                      "QSQLITE"
                  ]
              },
              "archlevel": 0,
              "className": "QSQLiteDriverPlugin",
              "debug": false,
              "version": 394496
          }
          
          
          qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QSQLITE")
          qt.core.plugin.factoryloader: looking at "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlmysql.dylib"
          qt.core.plugin.loader: Failed to find metadata in lib /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlmysql.dylib: '/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlmysql.dylib' is not a valid Mach-O binary (wrong architecture)
          qt.core.plugin.factoryloader: "Failed to extract plugin meta data from '/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlmysql.dylib': '/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlmysql.dylib' is not a valid Mach-O binary (wrong architecture)" 
                   not a plugin
          qt.core.plugin.factoryloader: looking at "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlodbc.dylib"
          qt.core.plugin.loader: Found metadata in lib /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlodbc.dylib, metadata=
          {
              "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
              "MetaData": {
                  "Keys": [
                      "QODBC"
                  ]
              },
              "archlevel": 0,
              "className": "QODBCDriverPlugin",
              "debug": false,
              "version": 394496
          }
          
          
          qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QODBC")
          qt.core.plugin.factoryloader: looking at "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlpsql.dylib"
          qt.core.plugin.loader: Found metadata in lib /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/libqsqlpsql.dylib, metadata=
          {
              "IID": "org.qt-project.Qt.QSqlDriverFactoryInterface",
              "MetaData": {
                  "Keys": [
                      "QPSQL"
                  ]
              },
              "archlevel": 0,
              "className": "QPSQLDriverPlugin",
              "debug": false,
              "version": 394496
          }
          
          
          qt.core.plugin.factoryloader: Got keys from plugin meta data QList("QPSQL")
          qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Documents/GitHub/build-ATLAS-Qt_6_5_0_for_macOS-Release/sqldrivers" ...
          QSqlDatabase: QMYSQL driver not loaded
          QSqlDatabase: available drivers: QSQLITE QODBC QPSQL
          qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/accessible" ...
          qt.core.plugin.factoryloader: checking directory path "/Users/mikolajnawrocki/Documents/GitHub/build-ATLAS-Qt_6_5_0_for_macOS-Release/accessible" ...
          
          SGaistS Offline
          SGaistS Offline
          SGaist
          Lifetime Qt Champion
          wrote on last edited by
          #34

          @BushyAxis793 check the file type and architecture of the plugin you created. There's something wrong with it.

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

          B 1 Reply Last reply
          1
          • SGaistS SGaist

            @BushyAxis793 check the file type and architecture of the plugin you created. There's something wrong with it.

            B Offline
            B Offline
            BushyAxis793
            wrote on last edited by BushyAxis793
            #35

            @SGaist OK. I decided to delete and build plugin one more time and I still got no errors but I noticed few warnings:

            ld: warning: dylib (/usr/local/mysql/lib/libmysqlclient.dylib) was built for newer macOS version (12.0) than being linked (11.0)
            ld: warning: linking against a dylib which is not safe for use in application extensions: /usr/local/mysql/lib/libmysqlclient.dylib
            

            The file type of my libmysqlclient.dylib seems be ok and the architecture is universal (x86 + amr64) via lipo.

            SGaistS 1 Reply Last reply
            0
            • B BushyAxis793

              @SGaist OK. I decided to delete and build plugin one more time and I still got no errors but I noticed few warnings:

              ld: warning: dylib (/usr/local/mysql/lib/libmysqlclient.dylib) was built for newer macOS version (12.0) than being linked (11.0)
              ld: warning: linking against a dylib which is not safe for use in application extensions: /usr/local/mysql/lib/libmysqlclient.dylib
              

              The file type of my libmysqlclient.dylib seems be ok and the architecture is universal (x86 + amr64) via lipo.

              SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #36

              What about libqsqlmysql.dylib ?

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

              B 1 Reply Last reply
              1
              • SGaistS SGaist

                What about libqsqlmysql.dylib ?

                B Offline
                B Offline
                BushyAxis793
                wrote on last edited by
                #37

                @SGaist I checked libqsqlmysql.dylib architecture:

                mikolajnawrocki@MacBook-Pro-Mikoaj ~ % lipo -info /Users/mikolajnawrocki/Desktop/build-sqldrivers/plugins/sqldrivers/libqsqlmysql.dylib
                Non-fat file: /Users/mikolajnawrocki/Desktop/build-sqldrivers/plugins/sqldrivers/libqsqlmysql.dylib is architecture: x86_64
                
                SGaistS 1 Reply Last reply
                0
                • B BushyAxis793

                  @SGaist I checked libqsqlmysql.dylib architecture:

                  mikolajnawrocki@MacBook-Pro-Mikoaj ~ % lipo -info /Users/mikolajnawrocki/Desktop/build-sqldrivers/plugins/sqldrivers/libqsqlmysql.dylib
                  Non-fat file: /Users/mikolajnawrocki/Desktop/build-sqldrivers/plugins/sqldrivers/libqsqlmysql.dylib is architecture: x86_64
                  
                  SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #38

                  Looks like it still is single architecture.

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

                  B 1 Reply Last reply
                  1
                  • SGaistS SGaist

                    Looks like it still is single architecture.

                    B Offline
                    B Offline
                    BushyAxis793
                    wrote on last edited by
                    #39

                    @SGaist As I said before libmysqlclient.dylib is universal

                    mikolajnawrocki@MacBook-Pro-Mikoaj ~ % lipo -info /Users/mikolajnawrocki/Desktop/universal/libmysqlclient.dylib
                    Architectures in the fat file: /Users/mikolajnawrocki/Desktop/universal/libmysqlclient.dylib are: x86_64 arm64 
                    

                    So the question is why libqsqlmysql.dylib is still x86?

                    in this command

                    /Users/mikolajnawrocki/Qt/6.5.0/macos/bin/qt-cmake /Users/mikolajnawrocki/Qt/6.5.0/Src/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=/Users/mikolajnawrocki/Qt/6.5.0/macos -DMySQL_INCLUDE_DIR="/usr/local/mysql/include" -DMySQL_LIBRARY="/usr/local/mysql/lib/libmysqlclient.dylib"
                    

                    libmysqlclient.dylib has correctly architecture

                    Maybe something with this warnings?

                    ld: warning: dylib (/usr/local/mysql/lib/libmysqlclient.dylib) was built for newer macOS version (12.0) than being linked (11.0)
                    ld: warning: linking against a dylib which is not safe for use in application extensions: /usr/local/mysql/lib/libmysqlclient.dylib
                    

                    I think I am very close to fix my problem but still needs some help.

                    1 Reply Last reply
                    0
                    • hskoglundH Offline
                      hskoglundH Offline
                      hskoglund
                      wrote on last edited by
                      #40

                      Hi, to be sure you build for the correct architecture, you can specify it on qt-cmake's command line, like this:

                      /Users/mikolajnawrocki/Qt/6.5.0/macos/bin/qt-cmake /Users/mikolajnawrocki/Qt/6.5.0/Src/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=/Users/mikolajnawrocki/Qt/6.5.0/macos -DMySQL_INCLUDE_DIR="/usr/local/mysql/include" -DMySQL_LIBRARY="/usr/local/mysql/lib/libmysqlclient.dylib" -DCMAKE_OSX_ARCHITECTURES="arm64" .
                      
                      B 1 Reply Last reply
                      1
                      • hskoglundH hskoglund

                        Hi, to be sure you build for the correct architecture, you can specify it on qt-cmake's command line, like this:

                        /Users/mikolajnawrocki/Qt/6.5.0/macos/bin/qt-cmake /Users/mikolajnawrocki/Qt/6.5.0/Src/qtbase/src/plugins/sqldrivers -DCMAKE_INSTALL_PREFIX=/Users/mikolajnawrocki/Qt/6.5.0/macos -DMySQL_INCLUDE_DIR="/usr/local/mysql/include" -DMySQL_LIBRARY="/usr/local/mysql/lib/libmysqlclient.dylib" -DCMAKE_OSX_ARCHITECTURES="arm64" .
                        
                        B Offline
                        B Offline
                        BushyAxis793
                        wrote on last edited by
                        #41

                        @hskoglund Thanks for reply. I was follow your tip and the architecture is:

                        mikolajnawrocki@MacBook-Pro-Mikoaj ~ % lipo -info /Users/mikolajnawrocki/Desktop/build-sqldrivers/plugins/sqldrivers/libqsqlmysql.dylib
                        Non-fat file: /Users/mikolajnawrocki/Desktop/build-sqldrivers/plugins/sqldrivers/libqsqlmysql.dylib is architecture: x86_64
                        
                        1 Reply Last reply
                        0
                        • hskoglundH Offline
                          hskoglundH Offline
                          hskoglund
                          wrote on last edited by
                          #42

                          Hi, if you're running QT an M1 MacBook Pro then the architecture should be "arm64".

                          B 1 Reply Last reply
                          1
                          • hskoglundH hskoglund

                            Hi, if you're running QT an M1 MacBook Pro then the architecture should be "arm64".

                            B Offline
                            B Offline
                            BushyAxis793
                            wrote on last edited by
                            #43

                            @hskoglund I know but my architecture is x86_64/arm64 so I need universal plugin. No idea how to install arm only version of QT.

                            1 Reply Last reply
                            0
                            • hskoglundH Offline
                              hskoglundH Offline
                              hskoglund
                              wrote on last edited by
                              #44

                              Building wrih universal architecture is a good idea if you plan to distribute the .dylib to other Mac computers, but Oracle only allows a build for a single compurer anyway:

                              B 1 Reply Last reply
                              1
                              • hskoglundH hskoglund

                                Building wrih universal architecture is a good idea if you plan to distribute the .dylib to other Mac computers, but Oracle only allows a build for a single compurer anyway:

                                B Offline
                                B Offline
                                BushyAxis793
                                wrote on last edited by
                                #45

                                @hskoglund OK. So, can You tell me what is in you opinion best way to add qmysql plugin to qt creator?

                                1 Reply Last reply
                                0
                                • hskoglundH Offline
                                  hskoglundH Offline
                                  hskoglund
                                  wrote on last edited by
                                  #46

                                  If you do that qt-cmake command again with the architecture specified (same as I posted 7 hours ago):

                                  /Users/mikolajnawrocki/Qt/6.5.0/macos/bin/qt-cmake ... -DCMAKE_OSX_ARCHITECTURES="arm64"
                                  

                                  and then try the lipo command:

                                  lipo -info /Users/mikolajnawrocki/Desktop/build-sqldrivers/plugins/sqldrivers/libqsqlmysql.dylib
                                  

                                  if it still says "x86_64" then try nuking the build directory :-)

                                  B 1 Reply Last reply
                                  1
                                  • hskoglundH hskoglund

                                    If you do that qt-cmake command again with the architecture specified (same as I posted 7 hours ago):

                                    /Users/mikolajnawrocki/Qt/6.5.0/macos/bin/qt-cmake ... -DCMAKE_OSX_ARCHITECTURES="arm64"
                                    

                                    and then try the lipo command:

                                    lipo -info /Users/mikolajnawrocki/Desktop/build-sqldrivers/plugins/sqldrivers/libqsqlmysql.dylib
                                    

                                    if it still says "x86_64" then try nuking the build directory :-)

                                    B Offline
                                    B Offline
                                    BushyAxis793
                                    wrote on last edited by BushyAxis793
                                    #47

                                    @hskoglund Same result :(

                                    I have no idea why I still got x86_64 architecture...

                                    All I want is just add QMySQL plugin to my Qt Creator project nothing more.

                                    1 Reply Last reply
                                    0
                                    • hskoglundH Offline
                                      hskoglundH Offline
                                      hskoglund
                                      wrote on last edited by
                                      #48

                                      The stackoverflow post you linked to 9 days ago, I looked at it now and it is a very good instruction how to build the MySQL plugin.
                                      Pleas try it again and remember to erase all build directories and download a fresh copy of Qt”s sources every time you complie/build the plugin.

                                      B 1 Reply Last reply
                                      1
                                      • hskoglundH hskoglund

                                        The stackoverflow post you linked to 9 days ago, I looked at it now and it is a very good instruction how to build the MySQL plugin.
                                        Pleas try it again and remember to erase all build directories and download a fresh copy of Qt”s sources every time you complie/build the plugin.

                                        B Offline
                                        B Offline
                                        BushyAxis793
                                        wrote on last edited by BushyAxis793
                                        #49

                                        @hskoglund I did it but when I input

                                        cmake --build .
                                        

                                        I got:

                                        [9/11] Linking CXX shared module plugins/sqldrivers/libqsqlmysql.dylib
                                        FAILED: plugins/sqldrivers/libqsqlmysql.dylib 
                                        : && /usr/bin/clang++ -g -DNDEBUG -O2 -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.3.sdk -mmacosx-version-min=11.0 -bundle -Wl,-headerpad_max_install_names -Wl,-undefined,error -fapplication-extension -o plugins/sqldrivers/libqsqlmysql.dylib mysql/CMakeFiles/QMYSQLDriverPlugin.dir/QMYSQLDriverPlugin_autogen/mocs_compilation.cpp.o mysql/CMakeFiles/QMYSQLDriverPlugin.dir/main.cpp.o mysql/CMakeFiles/QMYSQLDriverPlugin.dir/qsql_mysql.cpp.o -F/Users/mikolajnawrocki/Qt/6.5.0/macos/lib -Wl,-rpath,/usr/local/mysql/lib -Wl,-rpath,/Users/mikolajnawrocki/Qt/6.5.0/macos/lib  /usr/local/mysql/lib/libmysqlclient.dylib  /Users/mikolajnawrocki/Qt/6.5.0/macos/lib/QtSql.framework/Versions/A/QtSql  /Users/mikolajnawrocki/Qt/6.5.0/macos/lib/QtCore.framework/Versions/A/QtCore  -framework IOKit  -framework DiskArbitration && cd /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/build_sqldrivers/mysql && /opt/homebrew/Cellar/cmake/3.26.4/bin/cmake -E make_directory /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/build_sqldrivers/plugins/sqldrivers/libqsqlmysql.dylib.dSYM/Contents/Resources/DWARF && /opt/homebrew/Cellar/cmake/3.26.4/bin/cmake -E copy Info.dSYM.plist /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/build_sqldrivers/plugins/sqldrivers/libqsqlmysql.dylib.dSYM/Contents/Info.plist && /usr/bin/dsymutil /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/build_sqldrivers/plugins/sqldrivers/libqsqlmysql.dylib --flat -o /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/build_sqldrivers/plugins/sqldrivers/libqsqlmysql.dylib.dSYM/Contents/Resources/DWARF/qsqlmysql && /usr/bin/strip -S /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/build_sqldrivers/plugins/sqldrivers/libqsqlmysql.dylib && chmod -x /Users/mikolajnawrocki/Qt/6.5.0/macos/plugins/sqldrivers/build_sqldrivers/plugins/sqldrivers/libqsqlmysql.dylib.dSYM/Contents/Resources/DWARF/qsqlmysql
                                        ld: warning: ignoring file /usr/local/mysql/lib/libmysqlclient.dylib, building for macOS-x86_64 but attempting to link with file built for macOS-arm64
                                        Undefined symbols for architecture x86_64:
                                          "_mysql_affected_rows", referenced from:
                                              QMYSQLResult::reset(QString const&) in qsql_mysql.cpp.o
                                              QMYSQLResult::nextResult() in qsql_mysql.cpp.o
                                          "_mysql_character_set_name", referenced from:
                                              QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&) (.cold.1) in qsql_mysql.cpp.o
                                          "_mysql_close", referenced from:
                                              QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&) in qsql_mysql.cpp.o
                                              QMYSQLDriver::close() in qsql_mysql.cpp.o
                                          "_mysql_data_seek", referenced from:
                                              QMYSQLResult::fetch(int) in qsql_mysql.cpp.o
                                          "_mysql_errno", referenced from:
                                              qMakeError(QString const&, QSqlError::ErrorType, QMYSQLDriverPrivate const*) in qsql_mysql.cpp.o
                                              QMYSQLResult::record() const in qsql_mysql.cpp.o
                                          "_mysql_error", referenced from:
                                              qMakeError(QString const&, QSqlError::ErrorType, QMYSQLDriverPrivate const*) in qsql_mysql.cpp.o
                                              QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&) (.cold.1) in qsql_mysql.cpp.o
                                          "_mysql_fetch_field", referenced from:
                                              QMYSQLResultPrivate::bindInValues() in qsql_mysql.cpp.o
                                              QMYSQLResult::record() const in qsql_mysql.cpp.o
                                              QMYSQLDriver::record(QString const&) const in qsql_mysql.cpp.o
                                          "_mysql_fetch_field_direct", referenced from:
                                              QMYSQLResult::reset(QString const&) in qsql_mysql.cpp.o
                                              QMYSQLResult::nextResult() in qsql_mysql.cpp.o
                                          "_mysql_fetch_lengths", referenced from:
                                              QMYSQLResult::data(int) in qsql_mysql.cpp.o
                                          "_mysql_fetch_row", referenced from:
                                              QMYSQLResult::fetch(int) in qsql_mysql.cpp.o
                                              QMYSQLResult::fetchNext() in qsql_mysql.cpp.o
                                          "_mysql_field_count", referenced from:
                                              QMYSQLResult::reset(QString const&) in qsql_mysql.cpp.o
                                              QMYSQLResult::nextResult() in qsql_mysql.cpp.o
                                          "_mysql_field_seek", referenced from:
                                              QMYSQLResult::record() const in qsql_mysql.cpp.o
                                          "_mysql_free_result", referenced from:
                                              QMYSQLResult::cleanup() in qsql_mysql.cpp.o
                                              QMYSQLResult::nextResult() in qsql_mysql.cpp.o
                                              QMYSQLDriver::record(QString const&) const in qsql_mysql.cpp.o
                                          "_mysql_init", referenced from:
                                              QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&) in qsql_mysql.cpp.o
                                          "_mysql_insert_id", referenced from:
                                              QMYSQLResult::lastInsertId() const in qsql_mysql.cpp.o
                                          "_mysql_list_fields", referenced from:
                                              QMYSQLDriver::record(QString const&) const in qsql_mysql.cpp.o
                                          "_mysql_next_result", referenced from:
                                              QMYSQLResult::cleanup() in qsql_mysql.cpp.o
                                              QMYSQLResult::nextResult() in qsql_mysql.cpp.o
                                          "_mysql_num_fields", referenced from:
                                              QMYSQLResultPrivate::bindInValues() in qsql_mysql.cpp.o
                                          "_mysql_num_rows", referenced from:
                                              QMYSQLResult::fetchLast() in qsql_mysql.cpp.o
                                              QMYSQLResult::size() in qsql_mysql.cpp.o
                                          "_mysql_options", referenced from:
                                              setOptionString(MYSQL*, mysql_option, QStringView) in qsql_mysql.cpp.o
                                              setOptionInt(MYSQL*, mysql_option, QStringView) in qsql_mysql.cpp.o
                                              setOptionBool(MYSQL*, mysql_option, QStringView) in qsql_mysql.cpp.o
                                          "_mysql_query", referenced from:
                                              QMYSQLDriver::beginTransaction() in qsql_mysql.cpp.o
                                              QMYSQLDriver::commitTransaction() in qsql_mysql.cpp.o
                                              QMYSQLDriver::rollbackTransaction() in qsql_mysql.cpp.o
                                          "_mysql_real_connect", referenced from:
                                              QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&) in qsql_mysql.cpp.o
                                          "_mysql_real_escape_string", referenced from:
                                              QMYSQLDriver::formatValue(QSqlField const&, bool) const in qsql_mysql.cpp.o
                                          "_mysql_real_query", referenced from:
                                              QMYSQLResult::reset(QString const&) in qsql_mysql.cpp.o
                                          "_mysql_select_db", referenced from:
                                              QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&) in qsql_mysql.cpp.o
                                          "_mysql_server_end", referenced from:
                                              QMYSQLDriver::~QMYSQLDriver() in qsql_mysql.cpp.o
                                              QMYSQLDriver::~QMYSQLDriver() in qsql_mysql.cpp.o
                                              QMYSQLDriver::~QMYSQLDriver() in qsql_mysql.cpp.o
                                          "_mysql_server_init", referenced from:
                                              QMYSQLDriver::QMYSQLDriver(QObject*) in qsql_mysql.cpp.o
                                              QMYSQLDriver::QMYSQLDriver(MYSQL*, QObject*) in qsql_mysql.cpp.o
                                          "_mysql_set_character_set", referenced from:
                                              QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&) in qsql_mysql.cpp.o
                                          "_mysql_stmt_affected_rows", referenced from:
                                              QMYSQLResult::exec() in qsql_mysql.cpp.o
                                          "_mysql_stmt_attr_set", referenced from:
                                              QMYSQLResult::exec() in qsql_mysql.cpp.o
                                          "_mysql_stmt_bind_param", referenced from:
                                              QMYSQLResult::exec() in qsql_mysql.cpp.o
                                          "_mysql_stmt_bind_result", referenced from:
                                              QMYSQLResult::exec() in qsql_mysql.cpp.o
                                          "_mysql_stmt_close", referenced from:
                                              QMYSQLResult::cleanup() in qsql_mysql.cpp.o
                                              QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&) in qsql_mysql.cpp.o
                                          "_mysql_stmt_data_seek", referenced from:
                                              QMYSQLResult::fetch(int) in qsql_mysql.cpp.o
                                          "_mysql_stmt_errno", referenced from:
                                              qMakeStmtError(QString const&, QSqlError::ErrorType, MYSQL_STMT*) in qsql_mysql.cpp.o
                                          "_mysql_stmt_error", referenced from:
                                              qMakeStmtError(QString const&, QSqlError::ErrorType, MYSQL_STMT*) in qsql_mysql.cpp.o
                                          "_mysql_stmt_execute", referenced from:
                                              QMYSQLResult::exec() in qsql_mysql.cpp.o
                                          "_mysql_stmt_fetch", referenced from:
                                              QMYSQLResult::fetch(int) in qsql_mysql.cpp.o
                                              QMYSQLResult::fetchNext() in qsql_mysql.cpp.o
                                          "_mysql_stmt_free_result", referenced from:
                                              QMYSQLResult::detachFromResultSet() in qsql_mysql.cpp.o
                                          "_mysql_stmt_init", referenced from:
                                              QMYSQLResult::prepare(QString const&) in qsql_mysql.cpp.o
                                              QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&) in qsql_mysql.cpp.o
                                          "_mysql_stmt_insert_id", referenced from:
                                              QMYSQLResult::lastInsertId() const in qsql_mysql.cpp.o
                                          "_mysql_stmt_num_rows", referenced from:
                                              QMYSQLResult::fetchLast() in qsql_mysql.cpp.o
                                              QMYSQLResult::size() in qsql_mysql.cpp.o
                                          "_mysql_stmt_param_count", referenced from:
                                              QMYSQLResult::prepare(QString const&) in qsql_mysql.cpp.o
                                              QMYSQLResult::exec() in qsql_mysql.cpp.o
                                              QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&) in qsql_mysql.cpp.o
                                          "_mysql_stmt_prepare", referenced from:
                                              QMYSQLResult::prepare(QString const&) in qsql_mysql.cpp.o
                                              QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&) in qsql_mysql.cpp.o
                                          "_mysql_stmt_reset", referenced from:
                                              QMYSQLResult::exec() in qsql_mysql.cpp.o
                                          "_mysql_stmt_result_metadata", referenced from:
                                              QMYSQLResultPrivate::bindInValues() in qsql_mysql.cpp.o
                                          "_mysql_stmt_store_result", referenced from:
                                              QMYSQLResult::exec() in qsql_mysql.cpp.o
                                          "_mysql_store_result", referenced from:
                                              QMYSQLResult::cleanup() in qsql_mysql.cpp.o
                                              QMYSQLResult::reset(QString const&) in qsql_mysql.cpp.o
                                              QMYSQLResult::nextResult() in qsql_mysql.cpp.o
                                          "_mysql_thread_end", referenced from:
                                              QMYSQLDriver::close() in qsql_mysql.cpp.o
                                          "_mysql_thread_init", referenced from:
                                              QMYSQLDriver::open(QString const&, QString const&, QString const&, QString const&, int, QString const&) in qsql_mysql.cpp.o
                                        ld: symbol(s) not found for architecture x86_64
                                        clang: error: linker command failed with exit code 1 (use -v to see invocation)
                                        [10/11] Building C object sqlite/CMakeFiles/QSQLit...t/6.5.0/Src/qtbase/src/3rdparty/sqlite/sqlite3.c.o
                                        ninja: build stopped: subcommand failed.
                                        

                                        What now?

                                        1 Reply Last reply
                                        0
                                        • hskoglundH Offline
                                          hskoglundH Offline
                                          hskoglund
                                          wrote on last edited by
                                          #50

                                          You got to step 7 ok in that post https://stackoverflow.com/questions/73908494/qmysql-driver-not-loaded-on-mac-os-for-mac-m1-m2-users/73908495 but in step 8 you forgot to type:
                                          -DCMAKE_OSX_ARCHITECTURES="arm64"

                                          Remember to erase the build folders and download a fresh copy of Qt's sources before building again :-)

                                          B 1 Reply Last reply
                                          3

                                          • Login

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