[gelöst][Qt4] JPEG statisch linken
[gelöst][Qt4] JPEG statisch linken
hi,
mittlerweile hab ich es endlich hinbekommen mit Visual Studio 2003 statisch kompilierte Qt Programme zu erzeugen, nur leider bekomm ich einfach nicht hin, dass er "jpeg-Support" eincompiliert... nur über plugins die (wie bekannt) bei statisch kompilierten Versionen nicht unterstützt werden...
einer ne Idee wie ich Qt dazu bekomme jpeg support einzucompilieren? (qt-jpeg ist die momentane configure Option dazu)
Elgrimm Esleborn
mittlerweile hab ich es endlich hinbekommen mit Visual Studio 2003 statisch kompilierte Qt Programme zu erzeugen, nur leider bekomm ich einfach nicht hin, dass er "jpeg-Support" eincompiliert... nur über plugins die (wie bekannt) bei statisch kompilierten Versionen nicht unterstützt werden...
einer ne Idee wie ich Qt dazu bekomme jpeg support einzucompilieren? (qt-jpeg ist die momentane configure Option dazu)
Elgrimm Esleborn
Glaube an eine Lösung, nur dann kannst du auch eine finden.
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
super...
bis auf den linker Fehler:
jep die Pro file ist bearbeitet
und könntest du mir vllt auch noch sagen, warum der statische build anders aussieht als der dynamische??? Das ist mir völlig unerklärlich...
bis auf den linker Fehler:
Code: Alles auswählen
[...] Nicht aufgelöstes externes Symbol '"class QObject * __cdecl qt_plugin_instance_QJpegPlugin(void)" (?qt_plugin_instance_QJpegPlugin@@YAPAVQObject@@XZ)', verwiesen in Funktion '"public: __thiscall StaticQJpegPluginPluginInstance::StaticQJpegPluginPluginInstance(void)" (??0StaticQJpegPluginPluginInstance@@QAE@XZ)'und könntest du mir vllt auch noch sagen, warum der statische build anders aussieht als der dynamische??? Das ist mir völlig unerklärlich...
Glaube an eine Lösung, nur dann kannst du auch eine finden.
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
Und auch neu ausgeführt? Und ist das jpeg Plugin statisch gebaut?
Der Unterschied liegt darin, dass die Plugins statisch gebaut werden, aber dennoch Plugins bleiben. Außerdem kann man ja nicht wissen, ob du jpeg brauchst oder nicht. Macht die ganze Sache ein wenig mehr dynamisch.
Der Fehler ist, dass das jpeg Plugin nicht gelinkt wird. Aber meine Ausführung ist vollständig.
Der Unterschied liegt darin, dass die Plugins statisch gebaut werden, aber dennoch Plugins bleiben. Außerdem kann man ja nicht wissen, ob du jpeg brauchst oder nicht. Macht die ganze Sache ein wenig mehr dynamisch.
Der Fehler ist, dass das jpeg Plugin nicht gelinkt wird. Aber meine Ausführung ist vollständig.
jep aber tut net...FlorianBecker hat geschrieben:Und auch neu ausgeführt?
beinhaltet was?FlorianBecker hat geschrieben:Und ist das jpeg Plugin statisch gebaut?
Soweit versteh ich es ja nochFlorianBecker hat geschrieben:[...]Der Fehler ist, dass das jpeg Plugin nicht gelinkt wird. Aber meine Ausführung ist vollständig.
Was den Unterschied von Dynamischer und statischer Version betrifft:
ich meine die Darstellung... von bestimmten Widgets...
Zuletzt geändert von Esleborn am 29. Mai 2006 00:52, insgesamt 1-mal geändert.
Glaube an eine Lösung, nur dann kannst du auch eine finden.
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
naja ich hab hier zwei Versionen, die dynamische und die statische...
abgesehen davon dass die statische keine jpeg anzeigt (mittlerweile obigen linker Fehler produziert), sehen sie auch einfach anders aus... Die statische umrahmt alle QAbstractItemView Abkömmlinge im Gegensatz zur dynamischen, die das - wie gewünscht - nicht tut... frag mich nicht warum...
abgesehen davon dass die statische keine jpeg anzeigt (mittlerweile obigen linker Fehler produziert), sehen sie auch einfach anders aus... Die statische umrahmt alle QAbstractItemView Abkömmlinge im Gegensatz zur dynamischen, die das - wie gewünscht - nicht tut... frag mich nicht warum...
Glaube an eine Lösung, nur dann kannst du auch eine finden.
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
Ich nehme an, dass du die Windows Version nutzt. Im Verzeichnis plugin vom Build muss unter imageformats das qjpegplugin als lib liegen, allerdings wesentlich größer als bei dem shared build. Statisch eben.
Hast du mal geschaut, ob er wirklich gegen das Plugin linkt bei der ausführlichen Ausgabe? Ich denke, er findet das Plugin bei dir nicht, dazu hatte ich mal einen Workaround, aber da ich es nicht wirklich brauchte, weil es bei mir ging...
Ich versuche es zu erklären, denn die eigentliche Lösung weiß ich nicht mehr. Du musst zu den LIB Pfad den Pfad für die imageformsts hinzufügen. Mit QT_INSTALL_PLUGINS kommst du schon mal soweit und dann musst da noch imageformats anfügen. Allerdings könnte das einfach darauf zurückzuführen sein, wenn das QTDIR nicht richtig gesetzt ist. Sicher bin ich mir jedoch nicht. Am Besten, du postest mal die ausführliche Ausgabe, wenn er linkt, da kann ich dir sicherlich relativ schnell weiterhelfen.
Hast du mal geschaut, ob er wirklich gegen das Plugin linkt bei der ausführlichen Ausgabe? Ich denke, er findet das Plugin bei dir nicht, dazu hatte ich mal einen Workaround, aber da ich es nicht wirklich brauchte, weil es bei mir ging...
Ich versuche es zu erklären, denn die eigentliche Lösung weiß ich nicht mehr. Du musst zu den LIB Pfad den Pfad für die imageformsts hinzufügen. Mit QT_INSTALL_PLUGINS kommst du schon mal soweit und dann musst da noch imageformats anfügen. Allerdings könnte das einfach darauf zurückzuführen sein, wenn das QTDIR nicht richtig gesetzt ist. Sicher bin ich mir jedoch nicht. Am Besten, du postest mal die ausführliche Ausgabe, wenn er linkt, da kann ich dir sicherlich relativ schnell weiterhelfen.
Ja leider benutz ich grad win... jep die qjpegplugin lib (qjpeg.lib) liegt drin und ist deutlich größer...FlorianBecker hat geschrieben:Ich nehme an, dass du die Windows Version nutzt. Im Verzeichnis plugin vom Build muss unter imageformats das qjpegplugin als lib liegen, allerdings wesentlich größer als bei dem shared build. Statisch eben.
Er linkt nicht gegen das Plugin - versucht es scheints erst gar nicht. Der Fehler oben ist die gesamte Ausgabe (abgesehen von ein paar Warnings von anderen Stellen und dem üblichen (s.u.))
Code: Alles auswählen
Kompilieren...
main.cpp
Verknüpfen...
[...Warnungen die damit nichts zu tun haben...]
main.obj : error LNK2019: Nicht aufgelöstes externes Symbol '"class QObject * __cdecl qt_plugin_instance_QJpegPlugin(void)" (?qt_plugin_instance_QJpegPlugin@@YAPAVQObject@@XZ)', verwiesen in Funktion '"public: __thiscall StaticQJpegPluginPluginInstance::StaticQJpegPluginPluginInstance(void)" (??0StaticQJpegPluginPluginInstance@@QAE@XZ)'
release\Hoerbie_s.exe : fatal error LNK1120: 1 unaufgelöste externe Verweise
Das Build-Protokoll wurde unter "file://[...]\release\\BuildLog.htm" gespeichert.
Hoerbie_s - 2 Fehler, 7 Warnung(en)- Dateianhänge
-
- BuildLog.h
- .html frisst er nicht, also als .h :)
- (6.76 KiB) 178-mal heruntergeladen
Glaube an eine Lösung, nur dann kannst du auch eine finden.
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
vllt kannst du mir erklären...
woher kommt der Unterschied (qt412Dynmaic, qt413Static) (siehe Bilder)
ist so bei allen QAbstractView... (den schwarzen "Rahmen" meine ich)
PS: Ja ich spiel ne Menge mit verschiedenen Paintern, etc rum
woher kommt der Unterschied (qt412Dynmaic, qt413Static) (siehe Bilder)
ist so bei allen QAbstractView... (den schwarzen "Rahmen" meine ich)
PS: Ja ich spiel ne Menge mit verschiedenen Paintern, etc rum
- Dateianhänge
-
- dynamic_korrekt.jpg (27.11 KiB) 8366 mal betrachtet
-
- static_falsch.jpg (31.76 KiB) 8366 mal betrachtet
Glaube an eine Lösung, nur dann kannst du auch eine finden.
-
FlorianBecker
- Beiträge: 1213
- Registriert: 2. Dezember 2004 10:54
- Kontaktdaten:
Aus dem Stegreif leider nicht. Aber benenne die richtige Lib doch einfach in die die er linken will um, oder kopiere die dahin, eigentlich ziemlich egal. Aber ich kenne das es nervt manchmal und erscheint überflüssig.
Diesen Fehler hatte ich noch nicht.
So, warum es Unterschiede gibt. Als erstes würde mir die Qt Version einfallen und alles weiter kann man nur noch am Lebenden Object herausfinden, spekulieren würde da nicht helfen.
Also ich sags wie es ist. Keine Ahnung, ohne es nicht selbst probiert zu haben.
Diesen Fehler hatte ich noch nicht.
So, warum es Unterschiede gibt. Als erstes würde mir die Qt Version einfallen und alles weiter kann man nur noch am Lebenden Object herausfinden, spekulieren würde da nicht helfen.
Also ich sags wie es ist. Keine Ahnung, ohne es nicht selbst probiert zu haben.