Seite 1 von 2

[gelöst] Qt 4 und SQLite 3.2.2

Verfasst: 7. Juli 2005 11:41
von BartSimpson
Hallo, ich habe gearde versucht, den SQLite unter Qt 4 Windows zum laufen zu bringen. Er wird korrekt übersetzt und installiert. Nur leider wir er von QSqlDatabase::drivers() nicht gefunden. hat jemand eine Idee, woran es liegen kann?
Qt 4 OpenSourece für Windows
MinGW 4.1
SQLite 3.2.2

Verfasst: 7. Juli 2005 11:44
von FlorianBecker
Nötige Dependencies sind nicht vorhanden. Die dll von sqlite kann nicht in den Suchpfaden gefunden werden?

Verfasst: 7. Juli 2005 12:16
von BartSimpson
Die sqlite3.dll liegt in einem Suchpfad.

Verfasst: 8. Juli 2005 13:38
von BartSimpson
ich hatte jetzt noch mal MySQL versucht. Aver auch hier das gleiche Probelm.
alle Dateien sind da. nur werden sie leider nicht gefunden:(

Verfasst: 8. Juli 2005 13:51
von FlorianBecker
Puh, keine Ahnung, vielleicht ist dein Plugin Pfad nicht angegeben, oder nicht richtig. Es gibt für diese doofen Plugins so viele mögliche Dinge, warum die nicht gehen. Ich habe keine Ahnung was der Grund sein könnte.

Verfasst: 8. Juli 2005 13:56
von BartSimpson
Dann dürfte er doch das odbc plug-in auch nicht finden oder?

Verfasst: 8. Juli 2005 14:16
von FlorianBecker
Also wenn er das ODBC Plugin lädt, die anderen im gleichen Pfad sind, die aber nicht laden, dann sind deine Dependencies nicht im %PATH% Env.

Eine andere Lösung gibt es einfach nicht mehr. Außerdem wenn du alles am Anfang sagt, hätte man dir bestimmt gleich sagen können was es ist. Anstatt das du auf jeden meiner Kommentare doofe Behauptungen aufstellst.

Zusammenfassung:
ODBC Plugin unter Qt4-win wird geladen, QSQLite und QMySQL aber nicht. Die Plugins befinden sich alle im gleichen Pfad.

Ich nehme also an, das deine MinGw installation von Qt vollständig mit dem momentan verfügbaren Libs erstellt wurde? Die Runtime DLLs müssen im %PATH% sein, nicht in %LIB%. Bevor du das aber ausprobierst, würde ich halt einfach die dlls einmal in deinen Plugin Ordner legen um zu sehen, ob die dann geladen werden. Danach würde ich unter Linux ldd datei.dll machen um die Abhängigkeiten der Plugins festzustellen und um zu sehen wo diese Dateien liegen.

Aber bitte streng dich ein wenig an, bevor jetzt so was kommt wie:
Aber die DLLs sind im Pfad oder so was.

Ich bin kein Hellseher, denn ich kann deine Computerdaten nicht einsehen und probieren.

Verfasst: 8. Juli 2005 14:35
von BartSimpson
%Pat%& entält:
C:\c++\Qt\4.0.0\bin;C:\c++\MinGW\bin;C:\WINDOWS\System32;C:\Programme\Perl\bin;C:\c++\SQLite;C:\c++\MySQL\lib\opt
also eigenlich alles was benötigt wird.
sqlite3.dll und libmysql.dll in den Pluin Ordner kopiert->Das selbe Ergebnis:(
ein ldd sqlite3.dll bzw ldd libmysql.dll liefert not a dynamic executable
was ja auch kein Wunder ist. Denn wie soll der Linux was mir Windows Bibliothken anfangen können?? Und ein ldd gibt es für Windows nicht.:(

EDIT:
Nach kurzer Suche habe ich doch einer Art ldd für Windows gefunden.
Aber alle Abhängigkeiten sind erfüllt.

Verfasst: 8. Juli 2005 14:46
von FlorianBecker
Mh,

jetzt fängt es an interessant zu werden. Versuche deine Anwendung einmal im Debug modus, damit du Mitteilungen von Qt bekommst. Es sieht so aus, als ob es nichts alltägliches wäre.

Gibts denn so etwas wie strace unter Windows? Das zeigt dir an, welche Libs wann und wo geladen werden.

Verfasst: 8. Juli 2005 14:50
von BartSimpson
Gute Frage, ob es was sttrace ähnliches gibt. Denn ich Programmiere sonst auch nur unter Linux.:) So erst mal die Debug libs bauen lassen. Ich hoffe es geht gut:)

Verfasst: 8. Juli 2005 15:34
von BartSimpson
So debug libs sind fertig.:) Ich habe auch die Datenbanktreiber neu gebaut. Aber das erbig ist das selbe:( Was muss ich nun tun?

Verfasst: 8. Juli 2005 15:38
von FlorianBecker
Die Anwendung in einem Debugger ausführen. Und die Mitteilungen posten.

Verfasst: 8. Juli 2005 15:50
von BartSimpson
nur bekomme ich leider keine ausgaben. ich habe es mit dem gten alten gdb gemacht.
gdb
target exec versuche.exe
run
Das einzige was ich bekomme ist ein:
Starting program: C:\c++\Projekte\versuche\debug/versuche.exe
und nach dem beenden ein:
Program exited normally.
muss ich vor dem run noch was angeben?

Verfasst: 8. Juli 2005 16:03
von FlorianBecker
Ne, eigentlich nicht.

normalerweise sollte zumindestens sowas kommen wie:
Loading SQL Driver blah not available.
Available driver are : ....

Zumindest war das in Qt 3 so. Du hast ein echtes mist Problem.

Installiere Windows neu und Qt4 neu .... hehe

Keinen Plan mehr, aber vielleicht findest du auf der Qt Mailingliste etwas darüber. Sonst bist du wohl einer der ersten für das Problem. Bei mir gehen die SQL Driver, gut, ich habe auch VS2003 commercial, aber das sollte ja nichts daran ändern.

Verfasst: 8. Juli 2005 19:18
von BartSimpson
So ich habe es jetzte nochmal versucht, imdem ich alles neu übersetzte. Unter Linux gehts prima. Nur unter Windows werden die plugins nicht gefunden:(