Nominate our 2022 Qt Champions!

Building Mysql-Plugin on OS X with Qt 5.9.1 fails

  • Hello forum users,
    I'm trying to build the MySql-Plugin on OS X. mysql headers are installed, I've also compiled the mysql drivers for Qt 5.7.1 on the same machine about a year ago. I haven't uninstalled any mysql-dev files since then.
    My mysql-Installation is here:


    In it, I've got a 'lib' folder and an 'include' folder

    Inside the 'lib' folder, I've got among others a 'libmysqlclient.20.dylib' and 'libmysqlclient_r.dylib'

    In the 'include' folder there is a bunch of header files.

    Now, trying to compile my MySql-Plugin with these commands:

    cd /Users/NAME/Qt/5.9.1/Src/qtbase/src/plugins/sqldrivers/mysql
    /Users/NAME/Qt/5.9.1/clang_64/bin/qmake "INCLUDEPATH+=/usr/local/mysql" "LIBS+=-L/usr/local/mysql/ -lmysqlclient_r"

    Reveales this error:

    IBS+=-L/usr/local/mysql -lmysqlclient_r"
    Project ERROR: Library 'mysql' is not defined.

    Edit: Meanwhile, I've found out, that the error comes from this line in

    QMAKE_USE += mysql

    But mysql.h is present in /usr/local/mysql/include
    End edit.

    Trying to configure my source on top level with -sql-mysql leads to another error:

    ./configure -sql-mysql -I/usr/local/mysql
    ERROR: Feature 'sql-mysql' was enabled, but the pre-condition 'libs.mysql' failed.

    I'm on a freshly installed Src tree, just downloaded from the Qt server.
    Any hints how to resolve any of these errors?
    Is there anything wrong with my include paths?

  • Replying my own question:
    The following tweaks worked for compiling the libs:
    Change to:

    TARGET = qsqlmysql
    HEADERS += $$PWD/qsql_mysql_p.h
    SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
    LIBS += -L/usr/local/mysql/include
    #QMAKE_USE += mysql
    OTHER_FILES += mysql.json

    Then run qmake like this:

    /Users/daniel/Qt/5.9.1/clang_64/bin/qmake "INCLUDEPATH+=/usr/local/mysql" "LIBS+=-L/usr/local/mysql/lib -lmysqlclient" "INCLUDEPATH+=/usr/local/mysql/include"

    make and install:

    make install

    My Application is still not using the Mysql-driver, but that the next step, I presume.

    Edit: make install line added

Log in to reply