Qt c ++ eingebettetes MySQL

Ich habe ein Programm auf QT 5.0.2 mit MingW 4.7 unter Windows mit MySQL Server 5.7 geschrieben.

Ich habe zuerst mit der Installation des MYQSL-Treibers für QT mit begonnendieses Tutorial. Es funktioniert und ich kann auf die Daten zugreifen, aber ich muss den Server von MySQL Workbench starten, oder es wird keine Verbindung mit der Datenbank hergestellt (weil es nicht läuft).

Für mein Programm muss der Server beim Ausführen des Programms gestartet werden. Dies ist der Teil, in dem ich stecke. Ich weiß, ich muss das benutzenlibmysqld Bibliothek aber ich scheine es nicht zum Laufen zu bringen. Ich habe nicht viele nützliche Beispiele gefunden, also habe ich es so versucht:

Dies ist die .pro-Datei:

QT       += core sql
QT       += sql

QT       -= gui

TARGET = Temp
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app

SOURCES += main.cpp

INCLUDEPATH += "C:\Program Files (x86)\MySQL\MySQL Server 5.7\include"
INCLUDEPATH += "C:\Program Files (x86)\MySQL\MySQL Server 5.7\lib"

LIBS += -L"C:\Program Files (x86)\MySQL\MySQL Server 5.7\lib" -llibmysqld

Das ist meine Hauptdatei:

#include <QtSQL>
#include <qsql_mysql.h>
#include <mysql.h>


int main(int argc, char *argv[])
{
        QSqlDatabase mydb;
        MYSQL *mysql;

        static char *server_options[] = \
        { "mysql_test", "--defaults-file=/home/cquiros/temp/mysql/my.cnf", NULL };
        int num_elements = (sizeof(server_options) / sizeof(char *)) - 1;

        static char *server_groups[] = { "embedded", NULL };

        qDebug() << "Loading embedded";
        mysql_library_init(num_elements, server_options, server_groups);
        mysql = mysql_init(NULL);
        mysql_options(mysql, MYSQL_READ_DEFAULT_GROUP, "embedded");
        mysql_options(mysql, MYSQL_OPT_USE_EMBEDDED_CONNECTION, NULL);

        mysql_real_connect(mysql, NULL,NULL,NULL, "database1", 0,NULL,0);

        QMYSQLDriver *drv = new QMYSQLDriver(mysql);

        mydb = QSqlDatabase::addDatabase(drv,"connection1"); //Add the database connector to MySQL

        mydb.setDatabaseName("test");

        if (!mydb.open()) //Try to opens the database
        {
            qDebug() << "Error while opening the database";
        }
}

Wenn ich das starte, bekomme ich folgende Fehlermeldung: "

Fehler: undefinierter Verweis auf `Kobold__ZN12QMYSQLDriverC1EP8st_mysqlP7QObject 'collect2.exe: -1: Fehler: Fehler: ld hat 1 Exit-Status zurückgegeben

Kann mir jemand helfen, auf die Spur zu kommen?

Antworten auf die Frage(0)

Ihre Antwort auf die Frage