Was kann ich tun?

Verschiedenes zu Qt
Antworten
Hass
Beiträge: 40
Registriert: 12. Juli 2006 10:42

Was kann ich tun?

Beitrag von Hass »

Hallo Zusammen,
ich moechte ein aus QT bestandenes Programm unter ein keine QT-Installation gemachtes System verlegen. Das System ist Windows. Natuerlich weiss ich,dass meine Programm mit folgenden DLLs zusammen gebracht werden muessen.

QtGui4.dll
QtCore4.dll
mingwm10.dll

Aber wie kann ich tun,ich bin der Meinung,wie ich xxx.pro beschreiben, wenn diese DLLs in relativ-directory meines Programms gesteckt sind?

c:\my_program\

xxx.exe
lib
|----QtGui4.dll
|----QtCore4.dll
|----mingwm10.dll
|----andere.....
.....

Information von meinem PC:
Betriebsystem ist Windows XP Home
Complier ist GCC/G++
QTs Version ist 4.2.1

Danke schoen.
Mfg.
Zuletzt geändert von Hass am 21. Februar 2007 11:48, insgesamt 1-mal geändert.
dhcase
Beiträge: 132
Registriert: 10. Juni 2006 20:38

Beitrag von dhcase »

Versuch mal http://doc.trolltech.com/4.2/qcoreappli ... ibraryPath oder http://doc.trolltech.com/4.2/qcoreappli ... braryPaths
Ansonsten kannst du die DLLs noch in den system32-Ordner kopieren.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Die Dlls (nicht Plugins) werden beim Start der Applikation geladen - und nicht per QLibrary. Also nützt das auch nichts. Die Dlls müssen immer im PATH liegen (es gibt noch zwei andere Möglichkeiten, aber die sind noch schwieriger zu realisieren)
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
dhcase
Beiträge: 132
Registriert: 10. Juni 2006 20:38

Beitrag von dhcase »

Christian81 hat geschrieben:Die Dlls (nicht Plugins) werden beim Start der Applikation geladen - und nicht per QLibrary. Also nützt das auch nichts.
Stimmt, hab ich nicht dran gedacht...
Christian81 hat geschrieben:Die Dlls müssen immer im PATH liegen (es gibt noch zwei andere Möglichkeiten, aber die sind noch schwieriger zu realisieren)
Eine Möglichkeit ist statisch linken, aber was ist die andere?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Oh, statisch linken habe ich nicht gedacht
a) es gibt noch die blöden Manifests, allerdings müssen die libs dann in windows\winsxs liegen (soweit ich weiss, habe mich noch nicht intensiv mit beschäftigt)
b) man kann es auch in der Registry festlegen wenn ich die Diskussion auf qt-interest richtig verfolgt habe, aber auch hier - noch nicht weiter verfolgt
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Hass
Beiträge: 40
Registriert: 12. Juli 2006 10:42

Beitrag von Hass »

Christian81 hat geschrieben:Oh, statisch linken habe ich nicht gedacht
a) es gibt noch die blöden Manifests, allerdings müssen die libs dann in windows\winsxs liegen (soweit ich weiss, habe mich noch nicht intensiv mit beschäftigt)
b) man kann es auch in der Registry festlegen wenn ich die Diskussion auf qt-interest richtig verfolgt habe, aber auch hier - noch nicht weiter verfolgt
Also,wie du gezeigt hast,kein Cross Platform Weg zu finden,stimmt das? Wir muessen DLLs mit Exe zusammen in einem einigen Dateiordner liegen? stimmt das? Also es ist zu schwer.........
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

Zur Softwareverteilung sollte man unter Windows besser MSI nutzen.
Um entsprechende Pakete zu erzeigen, lohnt ein Blick auf das Projekt Wix.
Hass
Beiträge: 40
Registriert: 12. Juli 2006 10:42

Beitrag von Hass »

BartSimpson hat geschrieben:Zur Softwareverteilung sollte man unter Windows besser MSI nutzen.
Um entsprechende Pakete zu erzeigen, lohnt ein Blick auf das Projekt Wix.
Sonst noch anderes?
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

Mit allem anderen wirst du früher oder später Probleme bekommen, da einige Funktionen nur mit MSI gehen.
Hass
Beiträge: 40
Registriert: 12. Juli 2006 10:42

Beitrag von Hass »

BartSimpson hat geschrieben:Mit allem anderen wirst du früher oder später Probleme bekommen, da einige Funktionen nur mit MSI gehen.
Danke sehr, aber es muss anderen Weg geben,dass das Problem geloest werden kann.
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

Wenn du es "DLL Höllen" sicher machen willst, dann nicht. Da muste du aber denn auch den MS Compiler ab Version 8 benutzen.
Hass
Beiträge: 40
Registriert: 12. Juli 2006 10:42

Beitrag von Hass »

BartSimpson hat geschrieben:Wenn du es "DLL Höllen" sicher machen willst, dann nicht. Da muste du aber denn auch den MS Compiler ab Version 8 benutzen.
"DLL Höllen"?
Ich moechte nur DLLs im Subdateiordner des Programm(EXE) liegen,so dass diese DLLs nicht im Globaldateiordner von Windows verlegt werden. Wenn es getan wuerde,daechte ich genau, beinahe zu "DLL Hoellen" zu werden.Unter Microsoft.NET koennten wir eine xml.config beschreiben,so dass Lokale der DLLs immer notiert wuerden. Wie macht das?
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

Er einzige Weg um der DLL Hölle zu entkommen sind Side-by-Side Assemblys. Diese DLL's können nur mit dem VC2005 erstellt werden, und müssen über das MSI System installiert werden. Diese werden dann über ein Manifest der Anwendung gefunden. Einfach die DLL's irgenwo ablegen und denn diese im Suchpfad einbinden ist Mist, denn da kannste auf die DLL Hölle warten. MS hat mehre nette Artikel zu dem Thema suche mal nach Side-by-Side Asselby auf den msdn Seiten.
Hass
Beiträge: 40
Registriert: 12. Juli 2006 10:42

Beitrag von Hass »

BartSimpson hat geschrieben:Er einzige Weg um der DLL Hölle zu entkommen sind Side-by-Side Assemblys. Diese DLL's können nur mit dem VC2005 erstellt werden, und müssen über das MSI System installiert werden. Diese werden dann über ein Manifest der Anwendung gefunden. Einfach die DLL's irgenwo ablegen und denn diese im Suchpfad einbinden ist Mist, denn da kannste auf die DLL Hölle warten. MS hat mehre nette Artikel zu dem Thema suche mal nach Side-by-Side Asselby auf den msdn Seiten.
Es ist so schade,dass ich nur OpenSource Develop Tool habe,so dass mir beinahe mit gcc/c++ Programmsentwicklungen machen wuerde. Sag mal,ob mein Problem oder dieses Theme zu "Dlls redistributed" nie geloest werden koennte. Haette ich nur den Weg,Windows PATH einzusetzen?
BartSimpson
Beiträge: 1379
Registriert: 6. November 2004 12:03
Kontaktdaten:

Beitrag von BartSimpson »

Den VC 2005 C++ Compiler gibt es doch im Rahmen der Expressversion umsonst.
Nut das halt OpemMP fehlt, aber da mit soll es eh Problme geben. Ganz davon abgesehen das der VC Compiler deutlich schneller ist, und der Code weniger Probleme macht.
Antworten