Appl. kann auf anderem Rechner kein jpg-Bild mehr laden

Alles rund um die Programmierung mit Qt
Antworten
Christoph
Beiträge: 24
Registriert: 29. März 2005 15:22
Wohnort: Muenchen

Appl. kann auf anderem Rechner kein jpg-Bild mehr laden

Beitrag von Christoph »

Ich habe eine Applikation ( Qt OpenSource 4.2.1 )geschrieben, die unter Linux und dort, wo ich mein Programm mit MinGW kompiliert habe hervorragend laeuft und genau das macht, was ich will.
Wenn ich das Programm auf einem anderen Windows-XP-SP2-Rechner starte ( ich "installiere" das Programm auf dem anderen Rechner dadurch, dass ich die Applikation.exe selbst, die QT-dlls und die MinGW.dll ins gleiche Verzeichnis auf diesem Rechner kopiere und ausfuehre ),
kann ich zumindest keine .jpg-Bilder mehr laden ( weder mit QImage::load("Bild.jpg") noch mit QImageReader::read( )
( QImageReader::errorString( )meldet "unsopportedImageFormat" ), .bmp funktionieren hingegen da wie dort.
Kann es sein, daß da noch irgendwelche externen Dekoder oder sowas verwendet werden, die auf diesem Rechner einfach fehlen ?
Ist eine eher "nackte" Installation, ohne MSOffice oder andere Bildbearbeitungsprogramme ( ausser MSPaint )
Bin etwas ratlos
Zandru
Beiträge: 84
Registriert: 29. Mai 2007 15:35

Beitrag von Zandru »

schau dir mal http://doc.trolltech.com/4.2/deployment an, dir fehlt das jpg plugin.

(die plugins sind weitere dll's die bei bedarf geladen werden)
Christoph
Beiträge: 24
Registriert: 29. März 2005 15:22
Wohnort: Muenchen

Beitrag von Christoph »

Hallo Zandru,

das klingt mir plausibel, ich wußte da rein gar nix von.
Vielen Dank
Christoph
Beiträge: 24
Registriert: 29. März 2005 15:22
Wohnort: Muenchen

Beitrag von Christoph »

Hallo Zandru,

das klingt mir plausibel, ich wußte da rein gar nix von.
Vielen Dank
Christoph
Beiträge: 24
Registriert: 29. März 2005 15:22
Wohnort: Muenchen

Beitrag von Christoph »

Hallo Zandru,
ich habe versucht, das Problem entsprechend dem "How to Create Qt Plugins", Absatz "Static Plugins" zu loesen

Ich habe in meine Projektdatei eingefuegt

Code: Alles auswählen

QTPLUGIN += qjpeg
Ich habe in meine main.cpp eingefuegt

Code: Alles auswählen

# include <QtPlugin>
Q_IMPORT_PLUGIN(qjpeg)
Jetzt kriege ich ein Problem beim linken:

Code: Alles auswählen

...pictogrid_main.o(.text+0x3f9):pictogrid_main.cpp: undefined reference to 'qt_plugin_instance_qjpeg()'
Was ich unbeachet ließ ist der Hinweis im Howto: "...when compiled as a static library, Qt provides the following static plugins:"
Ich könnte mir vorstellen, dass mein Problem damit zu tun hat, weiß aber
nicht, wie ich tun soll. Ich habe im QtCentreWiki eine Anleitung "Building static Qt on Windows" gefunden, könnte das zur Lösung führen ?
Zandru
Beiträge: 84
Registriert: 29. Mai 2007 15:35

Beitrag von Zandru »

umm, das mit den static plugins geht nur, wenn du Qt komplett auf Static linking umstellst! (du benutzt ja aber dynamic linking!)

D.h. du musst einfach zusätzlich zu den .dll's die du schon kopiert hast, auch noch die qjpeg*.dll aus dem \plugins\imageformats Verzeichnis deiner Qt-Installation dazukopieren.
Christoph
Beiträge: 24
Registriert: 29. März 2005 15:22
Wohnort: Muenchen

Beitrag von Christoph »

Hallo Zandru,
vielen Dank fuer Deine Hilfe. Ich hatte diese Idee auch, aber das hat leider nicht zum gewünschten Ergebnis geführt.
Ich habe nun die Qt-OpenSource-Library auf dem betreffenden Rechner installiert und kann auf diese Weite damit arbeiten.
Das Problem ist also zunächst mal gelöst.

Ich vermute, daß da noch irgendwelche Registry-Eintraege erforderlich sind. Ich werd da mal rumprobieren und die Lösung posten, wenn ich etwas erreich habe.
Christoph
Beiträge: 24
Registriert: 29. März 2005 15:22
Wohnort: Muenchen

GELOEST

Beitrag von Christoph »

Ich hatte die plugin-datei "qjpeg1.dll" direkt in das Applikationsverzeichnis kopiert. Das war aber verkehrt. Die Datei muss in das Unterverzeichnis "imageformats\qjpeg1.dll" kopiert werden, dann klappt es auch.
Zandru, Dir noch mal vielen Dank fuer Deine Bemuehungen.
Antworten