.a sind statischeIch meine auch gelesen zu haben das ich nur die "qsqlmysql4.dll" und "libqsqlmysql4.a" brauche. Ist das korrekt ?
Also nimm die .a aus der Kopierorgie raus.
die mysql lib ist keine Qt lib, sondern eine für Qt extern benötigte.sqldrivers\libmysql.dll
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 ...
Niemals auf eine installierte Qt Umgebung verlassen. Immer schon die Qt dlls mitliefern, oder statisch kompilieren.Ich habe aber aktuell Windows 8.1 drauf ohne "QT Suite"
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 ....