qt exe läuft nicht.
-
Hallo Leute,
ich beschäftige mich mehr oder weniger das erste mal mit QT und habe das Problem, dass bereits die einfachste .exe (Hello World) nicht funktioniert (im QT ausführen klappt aber).
Ich habe inzwischen ion unterschiedlichsten Foren nachgeschaut und gemerkt, dass auch andere dieses Problem haben.
Allerdings werden dort immer irgendwelche lösungen mit statisch und dynamisch und so angeboten, die ich leider nicht verstehe.
Was ich gelesen habe, ist, dass ich eine release-.exe erstellen soll (ich denke das ist die exe, die im release ordner liegt), aber auch diese funktioniert nicht (gewisse dll's fehlen). Ich möchte aber verhindern, dass ich immer die .dll's immer mitkopieren will. Das Programm muss ja auch mal auf einem anderen Rechner laufen.
Es wäre echt nett, wenn ihr mir bei dem ersten Schritt helfen könntet, damit ich überhaupt erst einmal mit dem Programm arbeiten kann.
-
Du musst die .dlls mitgeben, statisches Linken ist nicht gerne gesehen in Verbindung mit der Lizenz von QT (LGPL) und rechtlich auch umstritten. Dazu gibts in Foren etliche Flamewars, aber der einheitliche Konsenz ist eben dynamisch zu linken um auf nummer sicher zu gehen. Es gibt auch wirklich keinen Grund dagegen, ausser man hat ein System welches keine Bibliotheken dynamisch laden kann.
Das Programm muss ja auch mal auf einem anderen Rechner laufen.
Das ist relativ einfach. Gib einfach die .dlls mit und lass dein Setup automatisch die C++ Runtime von Visual Studio installieren. Falls du den Mingw verwendest, stelle sicher dass die Datei Mingw01.dll im Verzeichnis liegt.
Von welchen .dll deine .exe abhängt kannst du mit diesem Programm rausfinden:
http://dependencywalker.com/
-
hm ok hab grad ein neues problem bekommen... wollte es grad testen, aber wenn ich eine release erstelle, kommt folgender fehler:
Der gdb-Debugger 'C:\...\Qt\2010.05\pythongdb\gdb-i686-pc-mingw32.exe' kann nicht ausgeführt werden: Das Starten des Prozesses schlug fehl: No such file or directory.
Mir ist klar, dass die exe fehlt, aber warum?!
-
ok also das klappt jetzt nach einem neustart irgendwie wieder.
hab die dll's mal in den ordner gepackt und jetzt kommt folgende meldung:
Der Prozedureinsprungspunkt "_Z5qFreePv" wurde in der DLL "QtCore4.dll" nicht gefunden.warum auch immer
-
hast du eine Release oder Debug Version deiner Anwendung gebaut?
-
Habe genau das gleiche Problem wenn ich meine exe starten will.
Meine ist eine release Anwendung.
sagt halt auch das in der Qtcore4.dll irgendwas nicht findet : (
-
Dann ist es die falsche dll. QtCreator liefert mingw und msvc dlls mit. Du musst die aus dem qt unterverzeichnis nehmen (für mingw) oder für msvc die komplette vs2008 variante installieren.
-
bei ist der fehler auch in der qtCore4.dll
Was meinst du mit unterverzeichnis? habe alle qtCore4.dll im QTSDK Ordner verwendet, aber keine geht.