MySql "driver not loaded" trotz existierender dlls

Alles rund um die Programmierung mit Qt
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Re: MySql "driver not loaded" trotz existierender dlls

Beitrag von RHBaum »

Ich meine auch gelesen zu haben das ich nur die "qsqlmysql4.dll" und "libqsqlmysql4.a" brauche. Ist das korrekt ?
.a sind statische (Import) Bibliotheken. DIe brauchst um dein Programm zu linken, aber nicht mehr Zur laufzeit (da sinds schon in der exe drin).
Also nimm die .a aus der Kopierorgie raus.
sqldrivers\libmysql.dll
die mysql lib ist keine Qt lib, sondern eine für Qt extern benötigte.
Qt legt ein paar dlls (plugins, platform, driver .... ) in spezielle Verzeichnisse ab, bzw, erwartet die bibs da.
Das trifft nicht auf "nicht Qt Libs(dlls)" zu.

Dlls werden "normal" wenn man nix verbiegt, und die dll im Coce ohne Pfadangaben anzieht (ist die Regel), unter windows an folgenden orten gesucht:
- Applikationsverzeichniss (also das verzeichniss in dem die startende Exe liegt) gilt auch wenn die Anwendung / der Prozess über ne Batch oder nen anderen Prozess gestartet wurde.
- Suchpfad, also alles was in der "Path" Variable steht.
- Lokal erweiterte Library Pfade .... z.b. via SetDllDirectory. gilt nur für den aktuellen Prozess.
- System verzeichnisse. also die üblichen Kaliber ala, system32, system, systemwow64 .... sollte eigentlich tabu sein !!!

Also, auch wenn die libmysql.dll von einer qmysql.dll angezogen wird, die in einem unterverzeichniss liegt (und von qt code selber über pfad extensions angezogen wird) .... gelten trotzdem die Pfade der exe auch für die Abhängigkeit.
D.H. die libmysql muss neben der exe liegen, oder im Pfad zugänglich sein ...
Ich habe aber aktuell Windows 8.1 drauf ohne "QT Suite"
Niemals auf eine installierte Qt Umgebung verlassen. Immer schon die Qt dlls mitliefern, oder statisch kompilieren.
Der beste fall ist, wenn keine QT installiert ist, weil da hagelts nachvollziehbare Fehler :-)
Der schlimmste fall ist eine nur größtenteils binärkompatible Version, dann knallts an unvorhergesehenen ecken und auch nicht immer. sehr schwer zu debuggen ....

Ciao ....
Volker75
Beiträge: 59
Registriert: 8. April 2009 21:04

Re: MySql "driver not loaded" trotz existierender dlls

Beitrag von Volker75 »

Die dll-Dateien, die auf "d" bzw "d4" enden, sind die debug dlls.
Die werden nur für den debug mode und nicht den release mode benutzt. Kannst du also auch löschen.
binio
Beiträge: 23
Registriert: 8. März 2010 19:11
Kontaktdaten:

Re: MySql "driver not loaded" trotz existierender dlls

Beitrag von binio »

Auch unter Windows 7 (64 Bit) läuft alles super ! Danke euch allen für die Anregungen und Tipps :)
Sonniges Wochenende wünsch Robert
Technik muss dem Menschen dienen, nicht umgekehrt
Antworten