Problem mit Ausführen des Programms auf anderem Computer

Verschiedenes zu Qt
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Problem mit Ausführen des Programms auf anderem Computer

Beitrag von Sym »

Hallo,

Zur Ausgangssituation: Ich entwickle unter Windows 2000 SP4 mit MSVC2005 Express Edition und Qt4.1.3.

Mein Programm lässt sich ohne weiteres kompilieren und ausführen. Nun habe ich eine Release-Datei erzeugt und den Dependency Walker angeschmissen um die Abhängigkeiten zu Prüfen. Dabei kam heraus:

Code: Alles auswählen

e:\qt\4.1.3\bin\QTGUI4.DLL
e:\qt\4.1.3\bin\QTCORE4.DLL
c:\winnt\system32\MSVCR80.DLL
c:\winnt\system32\KERNEL32.DLL
Soweit so gut. Also habe ich die exe zusammen mit den Qt-Bibliotheken in ein Verzeichnis geschmissen und auf einen Windows XP Rechner kopiert.

Beim Starten des Programms kommt jedoch die Fehlermeldung (mit Rechtschreibefehler!):

Diese Anwendung konnte nicht gestartet werden, weil die Anwenungskonfiguration nicht korrekt ist. Zur Problembeseitigung sollten Sie die Anwendung neu installieren.

Das sagt mir nun nicht sehr viel.

Habt ihr da einen Tip?
ChMaster
Beiträge: 252
Registriert: 23. Februar 2005 14:44
Wohnort: RP -> Alzey
Kontaktdaten:

Beitrag von ChMaster »

servus,

hast auch die Datei: MSVCR80.DLL und MSVCP80.DLL mitgegeben?
ChMaster
------------ Projekte------------
DBoxFE
DMS
First4 (Plugin-Develper)
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag von Sym »

Hallo,

nein, habe ich zunächst nicht mitgegeben, da es ja auch nicht bei den Abhängigkeiten dabei stand.

Allerdings habe ich die Datei gerade noch mal aus dem System32-Verzeichnis mit kopiert und leider ist da noch derselbe Fehler. :(
ChMaster
Beiträge: 252
Registriert: 23. Februar 2005 14:44
Wohnort: RP -> Alzey
Kontaktdaten:

Beitrag von ChMaster »

servus,

wurde eine *.manifest datei für dein programm estellt, den ich glaube
.net 2.0 erstellt eine für deine anwendung. wenn du die hast kopier sie
mit und versuch es noch einmal.
ChMaster
------------ Projekte------------
DBoxFE
DMS
First4 (Plugin-Develper)
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag von Sym »

Ich habe nun den kompletten release-Ordner mit kopiert - dort war auch eine Manifest-Datei enthalten. Allerdings weiß ich nicht, was .Net damit zu haben sollte.

Allerdings hat auch das nicht zum Erfolg geführt.
ChMaster
Beiträge: 252
Registriert: 23. Februar 2005 14:44
Wohnort: RP -> Alzey
Kontaktdaten:

Beitrag von ChMaster »

servus,

schau mal im Dependency Walker genau an was du brauchst.
mit genau meine ich die DLLs (Qt only) bei deiner anwendung.
also aufklappen heisst es ;)

bei mir tritt der fehler nicht auf, wobei ich auch VC++2005 Express
benutze.

dies waren leider meine vermutungen was diese problem angeht,
daher fällt mir nichts weiteres ein :(
ChMaster
------------ Projekte------------
DBoxFE
DMS
First4 (Plugin-Develper)
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Re: Problem mit Ausführen des Programms auf anderem Computer

Beitrag von macman »

Sym hat geschrieben:Diese Anwendung konnte nicht gestartet werden, weil die Anwenungskonfiguration nicht korrekt ist. Zur Problembeseitigung sollten Sie die Anwendung neu installieren.
Schon mal auf die Idee gekommen Tante Gugel damit zu füttern? Das ist nämlich kein Qt, sondern ein VS8 Problem, und da sind schon viele drüber gestolpert. Ich auch :-)

Guck mal in folgendem Ordner [VS Install Dir]\VC\redist\x86\Microsoft.VC80.CRT. Da findest Du die benötigten dlls und eine dazu gehörenden Manifest Datei. Die ist wichtig, ohne der bekommst Du diese so aussagekräftige Fehlermeldung.
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag von Sym »

@ChMaster:

Ich habe alle ersichtlichen DLLs mitkopiert, leider mit keinem Erfolg.

@macman:

Ich habe leider bei Google dazu keine Lösung finden können. Leider finde ich auch das Verzeichnis bei mir nicht. Im VC-Verzeichnis gibt es bei mir leider kein Redist.

Ich fand im Verzeichnis c:\winnt\winsxs das Unterverzeichnis x86_Microsoft.VC80.CRT_1fblabla, welches DLLs enthielt.

Und eine Manifest Datei, welche ebenfalls den Verzeichnisnamen hat.

Auch mit diesen Dateien hatte ich leider keinen Erfolg.
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag von Sym »

Ok, nach dem Stichwort Microsoft.VC80.CRT konnte ich schon mehr im Internet finden.

Anscheinend legt die Express Edition das Manifest-File nicht bereit. Muss ich mal sehen, wie ich mir das zusammen baue. Die DLLs befinden sich im o.g. angegebenen Verzeichnis - ist bei der Express Edition halt anders.
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Sym hat geschrieben:Im VC-Verzeichnis gibt es bei mir leider kein Redist.
Wird wohl an der VS Pro Edition liegen, die ich benutze.

Sym hat geschrieben:Auch mit diesen Dateien hatte ich leider keinen Erfolg.
Ich konnte das Problem lösen, in dem ich folgende Dateien mit ins Programmverzeichnis gepackt habe:
msvcp80.dll
msvcr80.dll
Microsoft.VC80.CRT.manifest

Mehr war eigentlich nicht zu tun. Es dauerte nur etwas, bis ich zu der Erkenntnis kam, das die Manifest-Datei mit da rein muss.
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Also ich habe das Problem mit dem Parameter -MT gelöst, als ich Qt gebaut habe. Damit musst du auch die runtimes keine Rücksicht mehr nehmen.
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag von Sym »

Wunderbar, danke Euch beiden.

Das werde ich gleich mal als Tutorial aufsetzen. ;)

Also, genau diese Dateien mussten mit kopiert werden. Allerdings gibt es bei der Express Edition kein redist-Verzeichnis und die entsprechenden DLLs liegen wie oben angegeben auch woanders.

Das Manifest-File fehlt komplett. Allerdings kann man das einfach selbst erzeugen:

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright © 1981-2001 Microsoft Corporation-->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"
                                 manifestVersion="1.0">
  <noInheritable/>
  <assemblyIdentity
    type="win32"
    name="Microsoft.VC80.CRT"
    version="8.0.50608.0"
    processorArchitecture="x86"
    publicKeyToken="1fc8b3b9a1e18e3b" />
  <file name="msvcr80.dll"/>
  <file name="msvcp80.dll"/>
  <file name="msvcm80.dll"/>
</assembly>
Ich hoffe, das hilft auch anderen Leuten.
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag von Sym »

FlorianBecker hat geschrieben:Also ich habe das Problem mit dem Parameter -MT gelöst, als ich Qt gebaut habe. Damit musst du auch die runtimes keine Rücksicht mehr nehmen.
Aha, wo genau finde ich dazu was? Hört sich interessant an. Warum muss ich dann darauf keine Rücksicht mehr nehmen?
FlorianBecker
Beiträge: 1213
Registriert: 2. Dezember 2004 10:54
Kontaktdaten:

Beitrag von FlorianBecker »

Nötige Abhängigkeiten werden mit eingebunden.

http://www.qtnode.net/wiki/Qt4_with_Vis ... _C_runtime
Sym
Beiträge: 139
Registriert: 15. Mai 2006 15:38
Wohnort: Bremen

Beitrag von Sym »

FlorianBecker hat geschrieben:Nötige Abhängigkeiten werden mit eingebunden.

http://www.qtnode.net/wiki/Qt4_with_Vis ... _C_runtime
Vielen Dank dafür. Ich glaube, das versuche ich auch einmal.
Antworten