Seite 1 von 1

Qt 4.5.2 mingw mysql

Verfasst: 1. Juli 2009 20:38
von univeda
Hallo zusammen.

Ja, ich weiss. Das Thema ist sicher zu hunderten diskutiert und erläutert. Die Häufigkeit der Anfragen zu diesem Thema zeigt letztlich aber auch, dass es wohl nicht so einfach ist mit Qt und mingw eine Mysql-DB anzusprechen.

Ich habe bereits dutzende Anleitungen im Netz studiert und ausprobiert, mit keiner habe ich es allerdings geschafft meine Qt-Umgebung so einzurichten, dass ich auf eine MySQl-Datenbank zugreifen kann.

Merkwürdigerweise verfolgen diverse Anleitungen aber auch sehr unterschiedliche Wege. Es muss doch einen eindeutigen Weg geben, der mich zu einer MySql-tauglichen Qt/mingw-Umgebung führt, oder?

Meine Umgebung sieht wie folgt aus:

Windows Vista
MySQL 5.1.34, C/C++ Header-Files installiert
Qt SDK for Windows 2009.03 mit intergriertem mingw

Installiert in folgende Ordner:

c:\entwicklung\mysql\server
c:\entwicklung\qt\2009.03

PATH-Variable ergänzt um c:\entwicklung\qt\2009.03\qt\bin

Ich verwende den Qt Designer. Klappt auch alles, wenn ich jedoch versuche auf eine MySql-DB zuzugreifen erhalte ich folgende Fehlermeldung:

Code: Alles auswählen

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC
Ich habe wie gesagt diverse Anleitungen im Netz gefunden, die aber alle nicht zum Ergebnis führen. Entweder sind diese zu oberflächlich geschrieben (geben sie make ein... make aber nicht vorhanden...) oder beziehen sich auf alte Versionen etc.

Ich wäre sehr dankbar, wenn jemand eine funktionierende Anleitung für die genannten Versionen geben könnte, die auch auf scheinbare Nebensächlichkeiten eingeht (wenn Umgebungsvariablen gesetzt werden müssen - dann bitte auch erwähnen etc.)

Danke euch.

Verfasst: 2. Juli 2009 09:16
von solarix
Merkwürdigerweise verfolgen diverse Anleitungen aber auch sehr unterschiedliche Wege.
Es gibt so viele unterstützte Plattformen, Compiler und Distributionen (Binaries vs. Source), dass es einfach auch viele Wege gibt.. :wink:
Es muss doch einen eindeutigen Weg geben, der mich zu einer MySql-tauglichen Qt/mingw-Umgebung führt, oder?
Aber klar.. die Kunst ist es, diesen zu finden :D

Grundsätzlich ist es falsch davon auszugehen, dass du Qt+MySQL installieren und danach Datenbankverbindugen nutzen kannst... Denn Qt interessiert sich nicht für restlichen Kram auf deiner Harddisc.
Der Weg ist, mit MinGW, Qt und MySQL ein Datenbank-Plugin für Qt zu erstellen. Alle Datenbank Plugins liegen unter %QTDIR%\plugins\sqldrivers (siehe http://doc.trolltech.com/4.5/plugins-howto.html).

Die Anleitung zum Erstellen des MySQL-Plugins findest du unter http://doc.trolltech.com/4.5/sql-driver.html ("How to Build the QMYSQL Plugin on Windows"). Viel Glück!

Verfasst: 2. Juli 2009 12:49
von univeda
Danke dir erstmal für deine Antwort und die Glückwünsche :wink:

Hat gewirkt.

Ich fühle mich aber gerade ein wenig wie Dr. Frankenstein... ich habe aus einer Vielzahl von Leichenteile ähhh ich meine Anleitungen die besten Stücke rausgeschnitten...

Folgendermaßen bin ich nun endlich zum Erfolg gekommen:

Code: Alles auswählen

1. mingw-utils nach C:\Entwicklung\Qt\2009.03\qt\bin entpacken
2. qt-konsole öffnen
3. cd C:\Entwicklung\MySql\Server5.1\lib\opt
4. reimp -d libmysql.lib
5. dlltool -k --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a
7. die daraus resultierende libmysql.a nach C:\Entwicklung\Qt\2009.03\mingw\lib kopieren
8. cd %QTDIR%
9. configure.exe -debug-and-release -stl -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libtiff -qt-libjpeg -qmake -qt-sql-sqlite -qt-sql-mysql -l mysql -I c:\Entwicklung\MySQL\Server5.1\include -L c:\Entwicklung\MySQL\Server5.1\lib\opt -platform win32-g++
10. cd %QTDIR%\src\plugins\sqldrivers\mysql
11. qmake "INCLUDEPATH+=C:\Entwicklung\MySQL\Server5.1\include" "LIBS+=C:\Entwicklung\MySQL\Server5.1\lib\opt\libmysql.a" mysql.pro
12. cd %QTDIR%
13. mingw32-make
14. plugin-cache in registry löschen:
HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.5.debug
HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.5.false
Schwere Geburt. Aber glücklich wie eine frisch entbundene Mutter... :D