Seite 1 von 1

Qt Anwendung startet nicht unter Windows [gelöst]

Verfasst: 26. Oktober 2009 13:50
von Mensch
Hallo zusammen,

ich habe unter Ubuntu eine Anwendung entwickelt, die Qt 4 und Qwt 5 benutzt. Die Anwendung habe ich mittels CMake gebaut (unter Benutzung der Qt Creator IDE).
Da diese Anwendung jetzt auch einigen Windows Nutzern zugänglich gemacht werden soll, habe ich alles unter Windows mittels Microsoft Visual Studio kompiliert. Das will ich den Nutzern aber nicht zumuten, deswegen würde ich gern die enstandene .exe mit allen nötigen .dll Dateien zusammenpacken und so an die Nutzer weitergeben. Bei einer älteren Version der Anwendung hat das Zusammenstellen auch prima geklappt. Auf einem PC ohne Qt konnte man einfach anhand der Windows-Fehlermeldungen sehen welche .dlls noch fehlten. Diesmal habe ich jedoch das Problem, dass ich keine diesbezügliche Fehlermeldung bekomme, sondern dass das Programm nicht startet mit folgender Fehlermeldung: "Die Anwendung konnte nicht richtig initisalisiert werden (0xc0150002). Klicken Sie auf "OK" um die Anwendung zu beenden.".
Die Qt dlls die ich damals brauchte plus die Qwt dll liegen schon mit der .exe im gleichen Ordner, Hat jemand eine Idee warum ich keine dll-bezogene Fehlermeldung bekomme, sondern diese?

Beste Grüße und vielen Dank im Voraus!

Verfasst: 26. Oktober 2009 14:32
von Mensch
Hallo zusammen,

eben wurde der Fehler gefunden. Das Problem war, dass Qwt per default in der Debug Variante kompiliert hat. Die entsprechende Qwt dll war also eine Debug dll und unter Windows vertragen sich natürlich keine Debug Versionen mit Release Versionen (Qt4 liegt in der Release Version vor).

Beste Grüße

Verfasst: 26. Oktober 2009 21:25
von N¤X
Also du hast dein Problem zwar schon gelöst, aber vllt ist das ja trotzdem was für dich:
Anstatt rumzuprobieren kann man sich die Dependencies auch schön auflisten lassen, mit dem dependency walker
Einfach der depends.exe als Parameter deine exe mitgeben (z.B. Eingabeaufforderung "depends deine.exe") und schon kriegst du angezeigt was für DLLs du brauchst. Dann siehst auch gleich dass er die Debug-DLLs braucht oder was anderes. ;)