Windows: MySQL-Driver-Plugin mit MSVC 2015 (64-bit) und Qt 5.7 (64-bit) erstellen

Geschrieben von Georg Lassnig
Hauptkategorie: E67-ITS Blog
on 09 August 2016
Zugriffe: 1842
 Beim programmieren mit Qt5-Windows kommt man früher oder später an den Punkt an dem man eine Verbindung zu einer Datenbank benötigt. Leider muss man bei den Windows Versionen von Qt die benötigten SQL-Driver-Plugins in Eigenregie kompilieren. Dieser Beitrag beschreibt die dazu nötigen Schritte.
 

Was dieser Beitrag nicht beschreibt:

Hier wird nicht beschrieben wie Qt oder MySQL installiert werden. Es wird vorausgesetzt, dass bereits funktionierende Installationen der Programme/Software vorhanden sind.
Die in diesem Beitrag verwendeten Software Versionen sind: Qt 5.7 MSVC2015 64-bit und der MySQL-Server 5.7.14 CE 64-bit.
 

Voraussetzung:

Über das MySQL-Server-Setup nur die "Development Components -> Client C API library" installieren.
Wichtig: Keine Leerzeichen im Installationspfad!

Beispiel-Verzeichnisse:

  • MySQL-API-Library: C:\MySQL\MySQLServer5.7\
  • Qt: C:\Qt\5.7\
Die oben und weiter unten im Beitrag angegebenen Pfade müssen natürlich an die eigenen Installationspfade und Gegebenheiten angepasst werden.
 

1:  Kompilieren

Die Qt-Eingabeaufforderung (CMD) starten. Normalerweise befindet sich ein Eintrag im Startmenü unter Qt -> 5.7 -> MSVC 2015 (64-bit).
In das Source-Verzeichnis vom MySQL-Plugin wechseln:
C:\Qt\5.7\Src\qtbase\src\plugins\sqldrivers\mysql\
Mit Hilfe von QMake die Makefiles des Projektes erstellen.
Befehl: qmake "INCLUDEPATH+=C:/MySQL/MySQLServer5.7/include" "LIBS+=C:/MySQL/MySQLServer5.7/lib/libmysql.lib" mysql.pro
Das MySQL-Plugin kompilieren. (Evtl. den gesamten Pfad zum Programm verwenden)
  • Befehl: C:\Qt\Tools\QtCreator\bin\jom.exe
Die Dateien qsqlmysql.dll, qsqlmysqld.pdb und qsqlmysqld.dll in das Standard-Plugin-Verzeichnis C:\Qt\5.7\msvc2015_64\plugins\sqldrivers kopieren.
Zusätzlich noch die libmysql.dll aus dem Verzeichnis C:\MySQL\MySQLServer5.7\lib in das Verzeichnis C:\Qt\5.7\msvc2015_64\bin kopieren, damit das Plugin erkannt wird und der MySQL-Client zur Verfügung steht.
 

Tipp:

 Sollte es während des kompilierens zu folgender Fehlermeldung kommen:
C:\MySQL\MySQLServer57\include/mysql_com.h:22:30: fatal error: binary_log_types.h: No such file or directory

Wurden die folgenden Header Dateien während der MySQL 5.7 Community Edition Installation nicht mit installiert.
  • binary_log_funcs.h
  • binary_log_types.h
 

Lösung:

  • Die MySQL Server Sourcen von hier herunterladen: MySQL.
  • Das *.tar.gz Archiv entpacken. ( z.B. mit 7Zip )
  • Nach dem entpacken in folgendes Verzeichnis wechseln: mysql-5.7.7-rc\mysql-5.7.7-rc\libbinlogevents\export\
  • Header-Dateien binary_log_funcs.h und binary_log_types.h aus diesem Verzeichnis nach C:\MySQL\MySQL5.7\include kopieren und erneut bei Punkt 1 dieser Anleitung beginnen.

Hoch