Qt Anwendung releasen

08/17/2014 11:51 download191#1
Hallo,
um mich in die Thematik Qt-Programmierung einzuarbeiten, habe ich eine kleine Anwendung in Qt geschrieben. Von Java und .Net bin ich es gewohnt, dass ich meine Programme einfach verschicken und starten kann.
Bei Qt will es mir einfach nicht gelingen, die Anwendung meinen Freunden zu schicken, weil immer irgendwelche dll's und Zeugs fehlen.

Was muss ich tuen, um das Programm auch auf anderen PC's zum Laufen zu bringen?

Vielen Dank =)
08/17/2014 12:38 Actidnoide#2
Quote:
Originally Posted by download191 View Post
[...] Von Java und .Net bin ich es gewohnt, dass ich meine Programme einfach verschicken und starten kann.
Bei Qt will es mir einfach nicht gelingen, [...]
Damit andere Leute deine Java Programme ausfuehren koennen, benoetigen sie das Java Runtime Environment.
Bei .net benoetigt der jenige die passende Version vom .net Framework.

Qt Programme laufen auch nur, wenn die noetigen Qt Bibliotheken auf dem Computer gefunden werden. Also lieferst du entweder die noetigen .dll Dateien mit deinem Programm mit oder du machst sogenanntes statisches Linking, wo die Bibliothek mit in die .exe gelinkt wird. Dadurch steigt die groesse der .exe aber um ein paar MB.
08/17/2014 12:49 download191#3
Jo, die entsprechenden Umgebungen sind ja auf den meisten PC's vorhanden, nur mit Qt klappts irgendwie garnicht.

Ich habe schon folgende Dateien mit in den Ordner geworfen und lokal bei mir kann ich die exe problemlos starten, nur auf anderen leider nicht.

Die Anwendung wurde im Releasemode erstellt und anschließend in einen Ordner auf dem Desktop gelegt, die dlls habe ich direkt von Qt. Ich verwende die MinGw Version 5.3.

Siehe Anhang.
08/17/2014 12:52 Actidnoide#4
Die Fehlermeldungen beim Start geben meist Infos darueber, wenn eine Dll z.b. nicht die richtigen Symbole hat. Wenn das nicht der Fall ist, habe selbst ich keine Lust dir weiterzuhelfen :P
08/17/2014 12:54 Omdi#5
Wird denn bei deinen Freunden nicht angezeigt welche Bibliotheken fehlen?
08/17/2014 13:01 download191#6
Ich muss die Anwendung erst wieder hochladen und denen mal schicken, damit ich einen Screen von der Meldung machen kann.
Auf anderen PC's sucht er immernoch irgendeine ..gcc.. dll. Wenn ich dem Programm die dlls in den Ordner lege, kommt eine Fehlermeldung, dass es nicht gestartet werden konnte.

Edith: die Ressourcendateien legt der in der exe ab, oder muss ich die eventuell auch in den Ordner legen?
08/17/2014 14:26 Actidnoide#7
Quote:
Originally Posted by download191 View Post
Edith: die Ressourcendateien legt der in der exe ab, oder muss ich die eventuell auch in den Ordner legen?
Die sind in der exe
08/20/2014 13:35 Delinquenz#8
Quote:
du machst sogenanntes statisches Linking, wo die Bibliothek mit in die .exe gelinkt wird. Dadurch steigt die groesse der .exe aber um ein paar MB.
Statisches Linken sollte man bei Qt aufgrund der Lizenz vermeiden.
08/21/2014 13:12 buFFy!#9
Quote:
Originally Posted by download191 View Post
Ich muss die Anwendung erst wieder hochladen und denen mal schicken, damit ich einen Screen von der Meldung machen kann.
Auf anderen PC's sucht er immernoch irgendeine ..gcc.. dll. Wenn ich dem Programm die dlls in den Ordner lege, kommt eine Fehlermeldung, dass es nicht gestartet werden konnte.

Edith: die Ressourcendateien legt der in der exe ab, oder muss ich die eventuell auch in den Ordner legen?
auf deinem rechner dein programm starten, ollydbg/ce an den prozess hängen und geladene module checken. alles was in irgendeinerweise mit qt zu tun hat einfach in den ordner der exe packen, genauso wird das dann auch geshipped und alles läuft.

gcc ist der gnu compiler, kp was du da machst. solltest aber schon als release compilen :<

[Only registered and activated users can see links. Click Here To Register...]

Quote:
Originally Posted by Delinquenz View Post
Statisches Linken sollte man bei Qt aufgrund der Lizenz vermeiden.
qt unterliegt afaik der gpl, also gilt das nur bei kommerzieller software.
das interessiert keine sau solange das programm unter ihm und seinen freunden bleibt
08/21/2014 19:57 Delinquenz#10
Quote:
qt unterliegt afaik der gpl, also gilt das nur bei kommerzieller software.
Wenn Qt ausschließlich unter der GPL fallen würde, müsste jedes Projekt, was Qt benutzt, auch open source sein. Da er bei seinem Projekt wohl eher unwarscheinlich die Source beilegen möchte, [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] aber bei statischem Linken die obj Datei der Anwendung, damit man bei Bedarf neukompilieren kann.

Klar, theoretisch kann man den Mist auch komplett ignorieren. Solch' eine Dankbarkeit für die Bereitstellung eines so ausgereiften GUI-Frameworks sieht man doch immer gern.
08/29/2014 03:27 Hiris#11
Quote:
Originally Posted by Delinquenz View Post
Klar, theoretisch kann man den Mist auch komplett ignorieren. Solch' eine Dankbarkeit für die Bereitstellung eines so ausgereiften GUI-Frameworks sieht man doch immer gern.
Rieche ich da Ironie?

@Te
Schauen was für nen Fehler kommt -> Dll googlen -> Dll runterladen (Auf die Version achten!!) und das ganze wiederholen bis das Problem nicht mehr existiert^^ Wichtig ist halt, dass die Dll´s im gleichen Verzeichnis wie die Exe liegen.
09/17/2014 15:45 download191#12
Hallo, vielen Dank für die rege Diskussion. Das Problem waren Abstürze des Programms, auch nachdem man die Dll's eingefügt hat, nach denen es fragte.

Ich habe nun noch einmal tiefer gesucht und finally eine Lösung gefunden, welche ich euch nicht vorenthalten möchte:

[Only registered and activated users can see links. Click Here To Register...]

#close request
09/17/2014 19:56 snow#13
Danke, dass du die Lösung hier direkt verlinkt hast, sieht man nicht alle Tage. :)

Quote:
Originally Posted by download191 View Post
#close request
Am Besten immer den eigenen Thread reporten, dann sehe ich das garantiert. :)
#closed (on request)