Seite 1 von 1

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

Verfasst: 4. Juni 2007 18:16
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

Verfasst: 4. Juni 2007 18:29
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)

Verfasst: 5. Juni 2007 08:55
von Christoph
Hallo Zandru,

das klingt mir plausibel, ich wußte da rein gar nix von.
Vielen Dank

Verfasst: 5. Juni 2007 08:56
von Christoph
Hallo Zandru,

das klingt mir plausibel, ich wußte da rein gar nix von.
Vielen Dank

Verfasst: 5. Juni 2007 16:16
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 ?

Verfasst: 5. Juni 2007 16:36
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.

Verfasst: 6. Juni 2007 07:57
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.

GELOEST

Verfasst: 11. Juni 2007 08:13
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.