Qt und "deploy"

Himhilion

Grünschnabel
Hallo,

Ich habe ein Problem zu verstehen, wie das "deploy" (ich hab kein sinnvolleres Wort dafür gefunden) unter Qt funktioniert. Bisher kenne ich es aus Visual C++ so, dass man, wenn man ein Release-Build erstellt eine Applikation erhält. Falls das entsprechende Bibliotheken nicht hat, können diese entweder seperat nachinstalliert werden oder als dll's in das Verzeichnis der jeweiligen Applikation gelegt werden. Also dachte ich, dass dies auch bei Qt funktionieren müsste. Jedoch nicht so bei mir. Nachdem ich die entsprechenden Dateien in das Applikationsverzeichnis gelegt hatte bekam ich eine Fehlermeldung, dass der Einstiegspunkt der QtCore4.dll nicht stimmt. Darauf hin habe ich ein bisschen gegoogled (ooh man, schon wieder so ein Wort) und folgendes gefunden:

http://qt.nokia.com/doc/4.6/deployment-windows.html

Dementsprechend habe ich
Code:
configure -static
in die Qt Console eingegeben und nach ca. einer halben/dreiviertel Stunde (ich arbeite derzeit mit einen "Ersatzsystem" :'-( ) war die Vorgang abgeschlossen.

Daraufhin habe ich auch den 2. Schritt ausgeführt
Code:
minigw32-make sub-src
Dieser dauert jedoch schon seit 5 Stunden an. Und ich bin mir nicht sicher zu welchem Erfolg er mich bringt.
Hat jemand eine kurze Erklärung für mich über diesen Sachverhalt? d.h. Was muss ich tun, um die kompilierte Applikation zur "Benutzbarkeit" zu bekommen?

Grüße, Himhilion
 
Hallo,

danke für die schnelle Antwort. Das ist schön zu hören, dass mit VS das auch so geht (werde ich als letzte Option nutzen) doch ich wollte eben kein VS (zumal ich es auch gerade nicht installiert habe) nutzen. Deshalb die Frage wie es mit dem Qt Creator funktioniert. Die Entwickler müssen sich doch was dabei gedacht haben, dass ich das alles erneut kompilieren muss!?
 
Hi.

Soweit ich weiß stellt Nokia (kostenlos) keine statischen Bibliotheken von Qt zur Verfügung. D.h. die muß man immer neu erstellen. (vermutlich aufgrund der LGPL Lizensierung)

Bei mir funkioniert das dyn. Linken gegen die Qt Bibliotheken problemlos. Ich kann die Applikation auf anderen Systemen auch ausführen (wenn die entsprechenden DLLs vorhanden sind).

Wie lautete denn die genaue Fehlermeldung?

Gruß
 
Zuletzt bearbeitet:
Ich glaube, die Nachricht lautete

Code:
The procedure enty point _Z5qFreePv could not be located in the dynamic link library QtCore4.dll

und zwar, nachdem die kompilierte Applikation die folgenden Dateien haben wollte, welche ich manuell in das Verzeichnis kompiert habe

mingwm10.dll
libgcc_s_dw2-1.dll
QtCore4.dll
(glaube noch eine, kann es nicht mehr genau sagen, da das kompilieren grad nicht geht)

Gruß, Himhilion
 
Aus welchem Verzeichnis kommt denn die QtCore4.dll? Also, wo hast du die her? Es muß 2 geben, probier mal die andere. (falls du irgendwann wieder kompilieren kannst... ;))

Und hast du das mal auf einem sauberen System probiert, wo keine Qt Entwicklungsdateien installiert sind?

Gruß
 
Tatsache, es gibt 2:

einmal unter

Code:
C:\Qt\2010.02\bin

und einmal unter

Code:
C:\Qt\2010.02\qt\bin

wobei ich fast vermute, dass ich die untere zu denen gehört, die ich seit Stunden selbst kompiliert habe (ps, bin immer noch dabei :'( ).
 
Tatsache, es gibt 2:

einmal unter

Code:
C:\Qt\2010.02\bin

und einmal unter

Code:
C:\Qt\2010.02\qt\bin

wobei ich fast vermute, dass ich die untere zu denen gehört, die ich seit Stunden selbst kompiliert habe (ps, bin immer noch dabei :'( ).
Nein. Wenn du statisch kompilierst, dann kommt keine DLL heraus, sondern eine statische Bibliothek (.a).

Gruß
 
Zurück