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. Set-up MariaDB library file location programmatically?
Forum Updated to NodeBB v4.3 + New Features

Set-up MariaDB library file location programmatically?

Scheduled Pinned Locked Moved Solved General and Desktop
85 Posts 7 Posters 36.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.
  • SPlattenS SPlatten

    @Bonnie , Hello, I'm trying to rebuild the library again and from my notes:

    $QTDIRBIN/qmake -- MYSQL_INCDIR="/usr/local/Cellar/mariadb/10.4.13/include/mysql" "MYSQL_LIBDIR=/usr/local/Cellar/mariadb/10.4.13/lib" MYSQL_LIBS="-lmariadb"
    

    This results in:

    Usage: /Users/sy/Qt/5.15.1/clang_64/bin/qmake [mode] [options] [files]
    
    QMake has two modes, one mode for generating project files based on
    some heuristics, and the other for generating makefiles. Normally you
    shouldn't need to specify a mode, as makefile generation is the default
    mode for qmake, but you may use this to test qmake on an existing project
    
    Mode:
      -project       Put qmake into project file generation mode
                     In this mode qmake interprets [files] as files to
                     be added to the .pro file. By default, all files with
                     known source extensions are added.
                     Note: The created .pro file probably will 
                     need to be edited. For example add the QT variable to 
                     specify what modules are required.
      -makefile      Put qmake into makefile generation mode (default)
                     In this mode qmake interprets files as project files to
                     be processed, if skipped qmake will try to find a project
                     file in your current working directory
    
    Warnings Options:
      -Wnone         Turn off all warnings; specific ones may be re-enabled by
                     later -W options
      -Wall          Turn on all warnings
      -Wparser       Turn on parser warnings
      -Wlogic        Turn on logic warnings (on by default)
      -Wdeprecated   Turn on deprecation warnings (on by default)
    
    Options:
       * You can place any variable assignment in options and it will be *
       * processed as if it was in [files]. These assignments will be    *
       * processed before [files] by default.                            *
      -o file        Write output to file
      -d             Increase debug level
      -t templ       Overrides TEMPLATE as templ
      -tp prefix     Overrides TEMPLATE so that prefix is prefixed into the value
      -help          This help
      -v             Version information
      -early         All subsequent variable assignments will be
                     parsed right before default_pre.prf
      -before        All subsequent variable assignments will be
                     parsed right before [files] (the default)
      -after         All subsequent variable assignments will be
                     parsed after [files]
      -late          All subsequent variable assignments will be
                     parsed right after default_post.prf
      -norecursive   Don't do a recursive search
      -recursive     Do a recursive search
      -set <prop> <value> Set persistent property
      -unset <prop>  Unset persistent property
      -query <prop>  Query persistent property. Show all if <prop> is empty.
      -qtconf file   Use file instead of looking for qt.conf
      -cache file    Use file as cache           [makefile mode only]
      -spec spec     Use spec as QMAKESPEC       [makefile mode only]
      -nocache       Don't use a cache file      [makefile mode only]
      -nodepend      Don't generate dependencies [makefile mode only]
      -nomoc         Don't generate moc targets  [makefile mode only]
      -nopwd         Don't look for files in pwd [project mode only]
    

    I've checked $QTDIRBIN, which contains:

    QTDIRBIN=/Users/sy/Qt/5.15.1/clang_64/bin
    

    MariaDB is installed in:

    /usr/local/Cellar/mariadb/10.5.7
    

    Can you help?

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

    @SPlatten In which directory do you call qmake?

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

    SPlattenS 1 Reply Last reply
    0
    • jsulmJ jsulm

      @SPlatten In which directory do you call qmake?

      SPlattenS Offline
      SPlattenS Offline
      SPlatten
      wrote on last edited by
      #67

      @jsulm, the path of make is specified by the QTDIRBIN environment variable and I've checked the qmake application is in that location.

      Kind Regards,
      Sy

      jsulmJ 1 Reply Last reply
      0
      • SPlattenS SPlatten

        @jsulm, the path of make is specified by the QTDIRBIN environment variable and I've checked the qmake application is in that location.

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

        @SPlatten said in Set-up MariaDB library file location programmatically?:

        the path of make is specified by the QTDIRBIN environment variable and I've checked the qmake application is in that location

        That is not what I asked.
        In which directory are you when you call qmake?

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

        SPlattenS 1 Reply Last reply
        0
        • jsulmJ jsulm

          @SPlatten said in Set-up MariaDB library file location programmatically?:

          the path of make is specified by the QTDIRBIN environment variable and I've checked the qmake application is in that location

          That is not what I asked.
          In which directory are you when you call qmake?

          SPlattenS Offline
          SPlattenS Offline
          SPlatten
          wrote on last edited by SPlatten
          #69

          @jsulm , Ok, thank you, that was part of the problem. I am in:

          /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers
          

          The output now is:

          Running configuration tests...
          Checking for DB2 (IBM)... no
          Checking for InterBase... no
          Checking for MySQL... no
          Checking for OCI (Oracle)... no
          Checking for ODBC... no
          Checking for PostgreSQL... no
          Checking for SQLite (version 2)... no
          Checking for TDS (Sybase)... no
          Done running configuration tests.
          
          Configure summary:
          
          Qt Sql Drivers:
            DB2 (IBM) .............................. no
            InterBase .............................. no
            MySql .................................. no
            OCI (Oracle) ........................... no
            ODBC ................................... no
            PostgreSQL ............................. no
            SQLite2 ................................ no
            SQLite ................................. yes
              Using system provided SQLite ......... no
            TDS (Sybase) ........................... no
          
          Qt is now configured for building. Just run 'make'.
          Once everything is built, you must run 'make install'.
          Qt will be installed into '/Users/sy/Qt/5.15.1/clang_64'.
          
          Prior to reconfiguration, make sure you remove any leftovers from
          the previous build.
          

          How do I get MySql set to yes ?

          I've removed config.cache and re-run qmake, still the same results.

          Kind Regards,
          Sy

          jsulmJ 1 Reply Last reply
          0
          • SPlattenS SPlatten

            @jsulm , Ok, thank you, that was part of the problem. I am in:

            /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers
            

            The output now is:

            Running configuration tests...
            Checking for DB2 (IBM)... no
            Checking for InterBase... no
            Checking for MySQL... no
            Checking for OCI (Oracle)... no
            Checking for ODBC... no
            Checking for PostgreSQL... no
            Checking for SQLite (version 2)... no
            Checking for TDS (Sybase)... no
            Done running configuration tests.
            
            Configure summary:
            
            Qt Sql Drivers:
              DB2 (IBM) .............................. no
              InterBase .............................. no
              MySql .................................. no
              OCI (Oracle) ........................... no
              ODBC ................................... no
              PostgreSQL ............................. no
              SQLite2 ................................ no
              SQLite ................................. yes
                Using system provided SQLite ......... no
              TDS (Sybase) ........................... no
            
            Qt is now configured for building. Just run 'make'.
            Once everything is built, you must run 'make install'.
            Qt will be installed into '/Users/sy/Qt/5.15.1/clang_64'.
            
            Prior to reconfiguration, make sure you remove any leftovers from
            the previous build.
            

            How do I get MySql set to yes ?

            I've removed config.cache and re-run qmake, still the same results.

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

            @SPlatten said in Set-up MariaDB library file location programmatically?:

            How do I get MySql set to yes ?

            As always in such a situation: check config.log for failed MySQL test and see what exactly the problem was...

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

            SPlattenS 1 Reply Last reply
            0
            • jsulmJ jsulm

              @SPlatten said in Set-up MariaDB library file location programmatically?:

              How do I get MySql set to yes ?

              As always in such a situation: check config.log for failed MySQL test and see what exactly the problem was...

              SPlattenS Offline
              SPlattenS Offline
              SPlatten
              wrote on last edited by
              #71

              @jsulm

              > main.cpp:2:10: fatal error: 'sybfront.h' file not found
              > #include <sybfront.h>
              >          ^~~~~~~~~~~~
              > 1 error generated.
              > make: *** [main.o] Error 1
              

              Not sure why this is an issue, I have built the driver for a previous version.

              Kind Regards,
              Sy

              jsulmJ 1 Reply Last reply
              0
              • SPlattenS SPlatten

                @jsulm

                > main.cpp:2:10: fatal error: 'sybfront.h' file not found
                > #include <sybfront.h>
                >          ^~~~~~~~~~~~
                > 1 error generated.
                > make: *** [main.o] Error 1
                

                Not sure why this is an issue, I have built the driver for a previous version.

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

                @SPlatten said in Set-up MariaDB library file location programmatically?:

                sybfront.h

                Google says that header file is part of freetds-dev package (on Ubuntu).

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

                SPlattenS 1 Reply Last reply
                0
                • jsulmJ jsulm

                  @SPlatten said in Set-up MariaDB library file location programmatically?:

                  sybfront.h

                  Google says that header file is part of freetds-dev package (on Ubuntu).

                  SPlattenS Offline
                  SPlattenS Offline
                  SPlatten
                  wrote on last edited by SPlatten
                  #73

                  @jsulm , I'll see what I can find.

                  After some googling:

                  brew upgrade freetds
                  

                  Still getting same result tho.

                  Kind Regards,
                  Sy

                  1 Reply Last reply
                  0
                  • SPlattenS Offline
                    SPlattenS Offline
                    SPlatten
                    wrote on last edited by
                    #74

                    Can anyone offer a solution?

                    Kind Regards,
                    Sy

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

                      Since you want to build the MariaDB backend, what does the checks related to that backend say ?

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

                      SPlattenS 1 Reply Last reply
                      0
                      • SGaistS SGaist

                        Since you want to build the MariaDB backend, what does the checks related to that backend say ?

                        SPlattenS Offline
                        SPlattenS Offline
                        SPlatten
                        wrote on last edited by SPlatten
                        #76

                        @SGaist , can you explain what you mean please? This is the content of the config.log:

                        Command line: MYSQL_INCDIR=/usr/local/Cellar/mariadb/10.5.7/include/mysql MYSQL_LIBDIR=/usr/local/Cellar/mariadb/10.5.7/lib MYSQL_LIBS=-lmariadb
                        Global lib dirs: [] [/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/usr/lib]
                        Global inc dirs: [/usr/local/opt/openssl/include] [/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/usr/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include]
                        looking for library db2
                        Trying source 0 (type inline) of library db2 ...
                          => source failed condition 'config.win32'.
                        Trying source 1 (type inline) of library db2 ...
                        sqlcli.h not found in [] and global paths.
                        sqlcli1.h not found in [] and global paths.
                          => source produced no result.
                        test config.sqldrivers.libraries.db2 FAILED
                        looking for library ibase
                        Trying source 0 (type inline) of library ibase ...
                          => source failed condition 'config.win32'.
                        Trying source 1 (type inline) of library ibase ...
                        ibase.h not found in [] and global paths.
                        

                        I've no idea why there is mention of win32, I'm on an iMAC running:

                        macOS Big Sur
                        Version 11.1
                        

                        Kind Regards,
                        Sy

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

                          If you take the time to read what you just posted, you'll see that it's for the Db2 database.

                          The logs contain all the tests that are done, concentrate on the one that are pertinent to MariaDB.

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

                          SPlattenS 1 Reply Last reply
                          1
                          • SGaistS SGaist

                            If you take the time to read what you just posted, you'll see that it's for the Db2 database.

                            The logs contain all the tests that are done, concentrate on the one that are pertinent to MariaDB.

                            SPlattenS Offline
                            SPlattenS Offline
                            SPlatten
                            wrote on last edited by SPlatten
                            #78

                            @SGaist , that's the problem isn't it? MySQL isn't mentioned.

                            Kind Regards,
                            Sy

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

                              Did you grep through the complete logs ?
                              Until now you extracted information for two unrelated database backend.

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

                              SPlattenS 1 Reply Last reply
                              0
                              • SGaistS SGaist

                                Did you grep through the complete logs ?
                                Until now you extracted information for two unrelated database backend.

                                SPlattenS Offline
                                SPlattenS Offline
                                SPlatten
                                wrote on last edited by SPlatten
                                #80

                                @SGaist , sorry, I'm am idiot:

                                Command line: MYSQL_INCDIR=/usr/local/Cellar/mariadb/10.5.7/include/mysql MYSQL_LIBDIR=/usr/local/Cellar/mariadb/10.5.7/lib MYSQL_LIBS=-lmariadb
                                Global lib dirs: [] [/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/usr/lib]
                                Global inc dirs: [/usr/local/opt/openssl/include] [/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/12.0.0/include /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/usr/include /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include]
                                looking for library db2
                                Trying source 0 (type inline) of library db2 ...
                                  => source failed condition 'config.win32'.
                                Trying source 1 (type inline) of library db2 ...
                                sqlcli.h not found in [] and global paths.
                                sqlcli1.h not found in [] and global paths.
                                  => source produced no result.
                                test config.sqldrivers.libraries.db2 FAILED
                                looking for library ibase
                                Trying source 0 (type inline) of library ibase ...
                                  => source failed condition 'config.win32'.
                                Trying source 1 (type inline) of library ibase ...
                                ibase.h not found in [] and global paths.
                                  => source produced no result.
                                test config.sqldrivers.libraries.ibase FAILED
                                looking for library mysql
                                Trying source 0 (type mysqlConfig) of library mysql ...
                                + /usr/local/bin/mysql_config --version
                                > 10.5.8
                                + /usr/local/bin/mysql_config --libs_r
                                > -L/usr/local/Cellar/mariadb/10.5.8/lib  -lmariadb -lssl -lcrypto
                                + /usr/local/bin/mysql_config --include
                                > -I/usr/local/Cellar/mariadb/10.5.8/include/mysql -I/usr/local/Cellar/mariadb/10.5.8/include/mysql/..
                                + cd /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql && /Users/sy/Qt/5.15.1/clang_64/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" 'INCLUDEPATH += /usr/local/opt/openssl/include' 'QMAKE_USE += mysql' 'QMAKE_LIBS_MYSQL = -L/usr/local/Cellar/mariadb/10.5.8/lib' 'QMAKE_INCDIR_MYSQL = /usr/local/Cellar/mariadb/10.5.8/include/mysql /usr/local/Cellar/mariadb/10.5.8/include' /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql
                                > Project WARNING: Qt has only been tested with version 10.15 of the platform SDK, you're using 11.1.
                                > Project WARNING: This is an unsupported configuration. You may experience build issues, and by using
                                > Project WARNING: the 11.1 SDK you are opting in to new features that Qt has not been prepared for.
                                > Project WARNING: Please downgrade the SDK you use to build your app to version 10.15, or configure
                                > Project WARNING: with CONFIG+=sdk_no_version_check when running qmake to silence this warning.
                                + cd /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql && MAKEFLAGS= make clean && MAKEFLAGS= make
                                > rm -f main.o
                                > rm -f *~ core *.core
                                > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib=libc++ -O2 -std=gnu++11  -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -mmacosx-version-min=10.13 -w -fPIC  -I. -I/usr/local/opt/openssl/include -I/usr/local/Cellar/mariadb/10.5.8/include/mysql -I/usr/local/Cellar/mariadb/10.5.8/include -I/Users/sy/Qt/5.15.1/clang_64/mkspecs/macx-clang -o main.o main.cpp
                                > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -stdlib=libc++ -headerpad_max_install_names  -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -mmacosx-version-min=10.13 -Wl,-rpath,@executable_path/../Frameworks -o mysql main.o   -L/usr/local/Cellar/mariadb/10.5.8/lib   
                                > Undefined symbols for architecture x86_64:
                                >   "_mysql_get_client_version", referenced from:
                                >       _main in main.o
                                > ld: symbol(s) not found for architecture x86_64
                                > clang: error: linker command failed with exit code 1 (use -v to see invocation)
                                > make: *** [mysql] Error 1
                                 => source failed verification.
                                Trying source 1 (type mysqlConfig) of library mysql ...
                                + /usr/local/bin/mysql_config --version
                                > 10.5.8
                                + /usr/local/bin/mysql_config --libs
                                > -L/usr/local/Cellar/mariadb/10.5.8/lib  -lmariadb -lssl -lcrypto
                                + /usr/local/bin/mysql_config --include
                                > -I/usr/local/Cellar/mariadb/10.5.8/include/mysql -I/usr/local/Cellar/mariadb/10.5.8/include/mysql/..
                                + cd /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql && /Users/sy/Qt/5.15.1/clang_64/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" 'INCLUDEPATH += /usr/local/opt/openssl/include' 'QMAKE_USE += mysql' 'QMAKE_LIBS_MYSQL = -L/usr/local/Cellar/mariadb/10.5.8/lib' 'QMAKE_INCDIR_MYSQL = /usr/local/Cellar/mariadb/10.5.8/include/mysql /usr/local/Cellar/mariadb/10.5.8/include' /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql
                                > Project WARNING: Qt has only been tested with version 10.15 of the platform SDK, you're using 11.1.
                                > Project WARNING: This is an unsupported configuration. You may experience build issues, and by using
                                > Project WARNING: the 11.1 SDK you are opting in to new features that Qt has not been prepared for.
                                > Project WARNING: Please downgrade the SDK you use to build your app to version 10.15, or configure
                                > Project WARNING: with CONFIG+=sdk_no_version_check when running qmake to silence this warning.
                                + cd /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql && MAKEFLAGS= make clean && MAKEFLAGS= make
                                > rm -f main.o
                                > rm -f *~ core *.core
                                > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib=libc++ -O2 -std=gnu++11  -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -mmacosx-version-min=10.13 -w -fPIC  -I. -I/usr/local/opt/openssl/include -I/usr/local/Cellar/mariadb/10.5.8/include/mysql -I/usr/local/Cellar/mariadb/10.5.8/include -I/Users/sy/Qt/5.15.1/clang_64/mkspecs/macx-clang -o main.o main.cpp
                                > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -stdlib=libc++ -headerpad_max_install_names  -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -mmacosx-version-min=10.13 -Wl,-rpath,@executable_path/../Frameworks -o mysql main.o   -L/usr/local/Cellar/mariadb/10.5.8/lib   
                                > Undefined symbols for architecture x86_64:
                                >   "_mysql_get_client_version", referenced from:
                                >       _main in main.o
                                > ld: symbol(s) not found for architecture x86_64
                                > clang: error: linker command failed with exit code 1 (use -v to see invocation)
                                > make: *** [mysql] Error 1
                                 => source failed verification.
                                Trying source 2 (type mysqlConfig) of library mysql ...
                                + /usr/local/bin/mysql_config --version
                                > 10.5.8
                                + /usr/local/bin/mysql_config --libs_r
                                > -L/usr/local/Cellar/mariadb/10.5.8/lib  -lmariadb -lssl -lcrypto
                                + /usr/local/bin/mysql_config --include
                                > -I/usr/local/Cellar/mariadb/10.5.8/include/mysql -I/usr/local/Cellar/mariadb/10.5.8/include/mysql/..
                                + cd /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql && /Users/sy/Qt/5.15.1/clang_64/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" 'INCLUDEPATH += /usr/local/opt/openssl/include' 'QMAKE_USE += mysql' 'QMAKE_LIBS_MYSQL = -L/usr/local/Cellar/mariadb/10.5.8/lib -lmariadb -lssl -lcrypto' 'QMAKE_INCDIR_MYSQL = /usr/local/Cellar/mariadb/10.5.8/include/mysql /usr/local/Cellar/mariadb/10.5.8/include' /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql
                                > Project WARNING: Qt has only been tested with version 10.15 of the platform SDK, you're using 11.1.
                                > Project WARNING: This is an unsupported configuration. You may experience build issues, and by using
                                > Project WARNING: the 11.1 SDK you are opting in to new features that Qt has not been prepared for.
                                > Project WARNING: Please downgrade the SDK you use to build your app to version 10.15, or configure
                                > Project WARNING: with CONFIG+=sdk_no_version_check when running qmake to silence this warning.
                                + cd /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql && MAKEFLAGS= make clean && MAKEFLAGS= make
                                > rm -f main.o
                                > rm -f *~ core *.core
                                > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib=libc++ -O2 -std=gnu++11  -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -mmacosx-version-min=10.13 -w -fPIC  -I. -I/usr/local/opt/openssl/include -I/usr/local/Cellar/mariadb/10.5.8/include/mysql -I/usr/local/Cellar/mariadb/10.5.8/include -I/Users/sy/Qt/5.15.1/clang_64/mkspecs/macx-clang -o main.o main.cpp
                                > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -stdlib=libc++ -headerpad_max_install_names  -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -mmacosx-version-min=10.13 -Wl,-rpath,@executable_path/../Frameworks -o mysql main.o   -L/usr/local/Cellar/mariadb/10.5.8/lib -lmariadb -lssl -lcrypto   
                                > ld: library not found for -lssl
                                > clang: error: linker command failed with exit code 1 (use -v to see invocation)
                                > make: *** [mysql] Error 1
                                 => source failed verification.
                                Trying source 3 (type mysqlConfig) of library mysql ...
                                + /usr/local/bin/mysql_config --version
                                > 10.5.8
                                + /usr/local/bin/mysql_config --libs
                                > -L/usr/local/Cellar/mariadb/10.5.8/lib  -lmariadb -lssl -lcrypto
                                + /usr/local/bin/mysql_config --include
                                > -I/usr/local/Cellar/mariadb/10.5.8/include/mysql -I/usr/local/Cellar/mariadb/10.5.8/include/mysql/..
                                + cd /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql && /Users/sy/Qt/5.15.1/clang_64/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" 'INCLUDEPATH += /usr/local/opt/openssl/include' 'QMAKE_USE += mysql' 'QMAKE_LIBS_MYSQL = -L/usr/local/Cellar/mariadb/10.5.8/lib -lmariadb -lssl -lcrypto' 'QMAKE_INCDIR_MYSQL = /usr/local/Cellar/mariadb/10.5.8/include/mysql /usr/local/Cellar/mariadb/10.5.8/include' /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql
                                > Project WARNING: Qt has only been tested with version 10.15 of the platform SDK, you're using 11.1.
                                > Project WARNING: This is an unsupported configuration. You may experience build issues, and by using
                                > Project WARNING: the 11.1 SDK you are opting in to new features that Qt has not been prepared for.
                                > Project WARNING: Please downgrade the SDK you use to build your app to version 10.15, or configure
                                > Project WARNING: with CONFIG+=sdk_no_version_check when running qmake to silence this warning.
                                + cd /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/config.tests/mysql && MAKEFLAGS= make clean && MAKEFLAGS= make
                                > rm -f main.o
                                > rm -f *~ core *.core
                                > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib=libc++ -O2 -std=gnu++11  -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -mmacosx-version-min=10.13 -w -fPIC  -I. -I/usr/local/opt/openssl/include -I/usr/local/Cellar/mariadb/10.5.8/include/mysql -I/usr/local/Cellar/mariadb/10.5.8/include -I/Users/sy/Qt/5.15.1/clang_64/mkspecs/macx-clang -o main.o main.cpp
                                > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -stdlib=libc++ -headerpad_max_install_names  -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -mmacosx-version-min=10.13 -Wl,-rpath,@executable_path/../Frameworks -o mysql main.o   -L/usr/local/Cellar/mariadb/10.5.8/lib -lmariadb -lssl -lcrypto   
                                > ld: library not found for -lssl
                                > clang: error: linker command failed with exit code 1 (use -v to see invocation)
                                > make: *** [mysql] Error 1
                                 => source failed verification.
                                Trying source 4 (type inline) of library mysql ...
                                Include path /usr/local/Cellar/mariadb/10.5.7/include/mysql is invalid.
                                mysql.h not found in [/usr/local/Cellar/mariadb/10.5.7/include/mysql] and global paths.
                                  => source produced no result.
                                Trying source 5 (type inline) of library mysql ...
                                  => source failed condition 'config.win32'.
                                Trying source 6 (type inline) of library mysql ...
                                  => source failed condition 'config.win32'.
                                Trying source 7 (type inline) of library mysql ...
                                Include path /usr/local/Cellar/mariadb/10.5.7/include/mysql is invalid.
                                mysql.h not found in [/usr/local/Cellar/mariadb/10.5.7/include/mysql] and global paths.
                                  => source produced no result.
                                Trying source 8 (type inline) of library mysql ...
                                Include path /usr/local/Cellar/mariadb/10.5.7/include/mysql is invalid.
                                mysql.h not found in [/usr/local/Cellar/mariadb/10.5.7/include/mysql] and global paths.
                                  => source produced no result.
                                test config.sqldrivers.libraries.mysql FAILED
                                looking for library oci
                                Trying source 0 (type inline) of library oci ...
                                  => source failed condition 'config.win32'.
                                Trying source 1 (type inline) of library oci ...
                                oci.h not found in [] and global paths.
                                  => source produced no result.
                                test config.sqldrivers.libraries.oci FAILED
                                looking for library odbc
                                Trying source 0 (type inline) of library odbc ...
                                  => source failed condition 'config.win32'.
                                Trying source 1 (type inline) of library odbc ...
                                sql.h not found in [] and global paths.
                                sqlext.h not found in [] and global paths.
                                  => source produced no result.
                                Trying source 2 (type inline) of library odbc ...
                                  => source failed condition '!config.win32 && !config.darwin'.
                                test config.sqldrivers.libraries.odbc FAILED
                                looking for library psql
                                Trying source 0 (type pkgConfig) of library psql ...
                                pkg-config use disabled globally.
                                  => source produced no result.
                                Trying source 1 (type psqlConfig) of library psql ...
                                pg_config not found.
                                  => source produced no result.
                                Trying source 2 (type psqlEnv) of library psql ...
                                  => source failed condition 'config.win32'.
                                Trying source 3 (type psqlEnv) of library psql ...
                                libpq-fe.h not found in [] and global paths.
                                  => source produced no result.
                                test config.sqldrivers.libraries.psql FAILED
                                looking for library sqlite2
                                Trying source 0 (type inline) of library sqlite2 ...
                                sqlite.h not found in [] and global paths.
                                  => source produced no result.
                                test config.sqldrivers.libraries.sqlite2 FAILED
                                looking for library tds
                                Trying source 0 (type sybaseEnv) of library tds ...
                                  => source failed condition 'config.win32'.
                                Trying source 1 (type sybaseEnv) of library tds ...
                                + cd /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/config.tests/tds && /Users/sy/Qt/5.15.1/clang_64/bin/qmake "CONFIG -= qt debug_and_release app_bundle lib_bundle" "CONFIG += shared warn_off console single_arch" 'INCLUDEPATH += /usr/local/opt/openssl/include' 'QMAKE_USE += tds' 'QMAKE_LIBS_TDS = -lsybdb' /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/config.tests/tds
                                > Project WARNING: Qt has only been tested with version 10.15 of the platform SDK, you're using 11.1.
                                > Project WARNING: This is an unsupported configuration. You may experience build issues, and by using
                                > Project WARNING: the 11.1 SDK you are opting in to new features that Qt has not been prepared for.
                                > Project WARNING: Please downgrade the SDK you use to build your app to version 10.15, or configure
                                > Project WARNING: with CONFIG+=sdk_no_version_check when running qmake to silence this warning.
                                + cd /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/config.tests/tds && MAKEFLAGS= make clean && MAKEFLAGS= make
                                > rm -f main.o
                                > rm -f *~ core *.core
                                > /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -c -pipe -stdlib=libc++ -O2 -std=gnu++11  -arch x86_64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk -mmacosx-version-min=10.13 -w -fPIC  -I. -I/usr/local/opt/openssl/include -I/Users/sy/Qt/5.15.1/clang_64/mkspecs/macx-clang -o main.o main.cpp
                                > main.cpp:2:10: fatal error: 'sybfront.h' file not found
                                > #include <sybfront.h>
                                >          ^~~~~~~~~~~~
                                > 1 error generated.
                                > make: *** [main.o] Error 1
                                 => source failed verification.
                                test config.sqldrivers.libraries.tds FAILED
                                

                                Which file do I edit to apply?

                                CONFIG+=sdk_no_version_check
                                

                                Kind Regards,
                                Sy

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

                                  This is the real error:

                                  @SPlatten said in Set-up MariaDB library file location programmatically?:

                                  Undefined symbols for architecture x86_64:

                                  "_mysql_get_client_version"

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

                                  SPlattenS 1 Reply Last reply
                                  0
                                  • SGaistS SGaist

                                    This is the real error:

                                    @SPlatten said in Set-up MariaDB library file location programmatically?:

                                    Undefined symbols for architecture x86_64:

                                    "_mysql_get_client_version"

                                    SPlattenS Offline
                                    SPlattenS Offline
                                    SPlatten
                                    wrote on last edited by SPlatten
                                    #82

                                    @SGaist , After seeing the output and its recommendation I edited sqldrivers.pro and added:

                                    TEMPLATE = subdirs
                                      
                                    sqldrivers_standalone {
                                        _QMAKE_CACHE_ = $$shadowed($$SQLDRV_SRC_TREE)/.qmake.conf
                                        load(qt_configure)
                                    }
                                    
                                    qtConfig(sql-psql)     : SUBDIRS += psql
                                    qtConfig(sql-mysql)    : SUBDIRS += mysql
                                    qtConfig(sql-odbc)     : SUBDIRS += odbc
                                    qtConfig(sql-tds)      : SUBDIRS += tds
                                    qtConfig(sql-oci)      : SUBDIRS += oci
                                    qtConfig(sql-db2)      : SUBDIRS += db2
                                    qtConfig(sql-sqlite)   : SUBDIRS += sqlite
                                    qtConfig(sql-sqlite2)  : SUBDIRS += sqlite2
                                    qtConfig(sql-ibase)    : SUBDIRS += ibase
                                    
                                    CONFIG+=sdk_no_version_check
                                    

                                    I then removed all the config files including the cache with:

                                    rm -R config.*
                                    

                                    Then executed:

                                    $QTDIRBIN/qmake -- MYSQL_INCDIR="/usr/local/Cellar/mariadb/10.5.7/include/mysql" "MYSQL_LIBDIR=/usr/local/Cellar/mariadb/10.5.7/lib" MYSQL_LIBS="-lmariadb"
                                    

                                    All this as in:

                                    /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers
                                    

                                    The result was config.log:

                                    
                                    Running configuration tests...
                                    Checking for DB2 (IBM)... no
                                    Checking for InterBase... no
                                    Checking for MySQL... no
                                    Checking for OCI (Oracle)... no
                                    Checking for ODBC... no
                                    Checking for PostgreSQL... no
                                    Checking for SQLite (version 2)... no
                                    Checking for TDS (Sybase)... no
                                    Done running configuration tests.
                                    
                                    Configure summary:
                                    
                                    Qt Sql Drivers:
                                      DB2 (IBM) .............................. no
                                      InterBase .............................. no
                                      MySql .................................. no
                                      OCI (Oracle) ........................... no
                                      ODBC ................................... no
                                      PostgreSQL ............................. no
                                      SQLite2 ................................ no
                                      SQLite ................................. yes
                                        Using system provided SQLite ......... no
                                      TDS (Sybase) ........................... no
                                    
                                    Qt is now configured for building. Just run 'make'.
                                    Once everything is built, you must run 'make install'.
                                    Qt will be installed into '/Users/sy/Qt/5.15.1/clang_64'.
                                    
                                    Prior to reconfiguration, make sure you remove any leftovers from
                                    the previous build.
                                    

                                    I then executed make:

                                    cd sqlite/ && ( test -e Makefile || /Users/sy/Qt/5.15.1/clang_64/bin/qmake -o Makefile /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/sqlite/sqlite.pro ) && /Applications/Xcode.app/Contents/Developer/usr/bin/make -f Makefile 
                                    make[1]: Nothing to be done for `first'.
                                    

                                    Then make install:

                                    cd sqlite/ && ( test -e Makefile || /Users/sy/Qt/5.15.1/clang_64/bin/qmake -o Makefile /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/sqlite/sqlite.pro ) && /Applications/Xcode.app/Contents/Developer/usr/bin/make -f Makefile install
                                    /Users/sy/Qt/5.15.1/clang_64/bin/qmake -install qinstall -exe ../plugins/sqldrivers/libqsqlite.dylib /Users/sy/Qt/5.15.1/clang_64/plugins/sqldrivers/libqsqlite.dylib
                                    /Users/sy/Qt/5.15.1/clang_64/bin/qmake -install qinstall /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/plugins/sqldrivers/libqsqlite.dylib.dSYM/Contents/Info.plist /Users/sy/Qt/5.15.1/clang_64/plugins/sqldrivers/libqsqlite.dylib.dSYM/Contents/Info.plist
                                    /Users/sy/Qt/5.15.1/clang_64/bin/qmake -install qinstall /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/plugins/sqldrivers/libqsqlite.dylib.dSYM/Contents/Resources/DWARF/libqsqlite.dylib /Users/sy/Qt/5.15.1/clang_64/plugins/sqldrivers/libqsqlite.dylib.dSYM/Contents/Resources/DWARF/libqsqlite.dylib
                                    /Users/sy/Qt/5.15.1/clang_64/bin/qmake -install qinstall /Users/sy/Qt/5.15.1/Src/qtbase/src/plugins/sqldrivers/lib/cmake/Qt5Sql/Qt5Sql_QSQLiteDriverPlugin.cmake /Users/sy/Qt/5.15.1/clang_64/lib/cmake/Qt5Sql/Qt5Sql_QSQLiteDriverPlugin.cmake
                                    

                                    I've also tried to mysql.pro:

                                    CONFIG+=sdk_no_version_check
                                      
                                    TARGET = qsqlmysql
                                    
                                    HEADERS += $$PWD/qsql_mysql_p.h
                                    SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
                                    
                                    QMAKE_USE += mysql
                                    
                                    OTHER_FILES += mysql.json
                                    
                                    PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
                                    include(../qsqldriverbase.pri)
                                    

                                    Then repeated the above steps, still mysql shows no??? and same results. Is it looking for a mysql library because MariaDB mostly uses the name mysql as it is based on that but I've notice that there are a few folders where the name is actually mairadb and not mysql?

                                    Kind Regards,
                                    Sy

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

                                      Serious question: do you realise that you just silenced a warning unrelated to the actual error ?

                                      I already pointed you to the real issue: a symbol is missing: _mysql_get_client_version.

                                      In any case, Qt 5.15.2, MariaDB 10.5.8 is a working combo using the same qmake line you have with just the versions updated.

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

                                      SPlattenS 2 Replies Last reply
                                      1
                                      • SGaistS SGaist

                                        Serious question: do you realise that you just silenced a warning unrelated to the actual error ?

                                        I already pointed you to the real issue: a symbol is missing: _mysql_get_client_version.

                                        In any case, Qt 5.15.2, MariaDB 10.5.8 is a working combo using the same qmake line you have with just the versions updated.

                                        SPlattenS Offline
                                        SPlattenS Offline
                                        SPlatten
                                        wrote on last edited by
                                        #84

                                        @SGaist , I have to switch back to 5.15.1 as 5.15.2 didn't come with any binaries, such as qmake.

                                        Why is the symbol missing: _mysql_get_client_version ?

                                        I'll try updating MariaDB now.

                                        Kind Regards,
                                        Sy

                                        1 Reply Last reply
                                        0
                                        • SGaistS SGaist

                                          Serious question: do you realise that you just silenced a warning unrelated to the actual error ?

                                          I already pointed you to the real issue: a symbol is missing: _mysql_get_client_version.

                                          In any case, Qt 5.15.2, MariaDB 10.5.8 is a working combo using the same qmake line you have with just the versions updated.

                                          SPlattenS Offline
                                          SPlattenS Offline
                                          SPlatten
                                          wrote on last edited by
                                          #85

                                          @SGaist , sorted now....I didn't realise that the version of MariaDB had already been updated on my system, so after correcting this in the command line everything is now working.

                                          Thank you.

                                          Kind Regards,
                                          Sy

                                          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