Unsichtbare Bilder + Startprobleme auf anderen Rechnern

Alles rund um die Programmierung mit Qt
Tobi
Beiträge: 28
Registriert: 22. April 2007 12:17
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von Tobi »

Also ich weiß nicht wie das bei LQ ist, aber ich nutze die OpenSource mit .pro Files. Und zu dem "'qjpeg' bei den zu linkenden Libs hinzuzufügen sollte wohl jeder hinbekommen":

In meinen Makefiles steht diese auch unter "LIBS =" drin, der Linker Fehler beglückt mich aber trotzdem noch...
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ob es viellicht irgendwer mal schafft ein Beispiel zu posten (bzw. anzuhängen) anstatt nur rumzuheulen dass es nicht geht? Ich glaube nicht und gebe deshalb auf...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
LQ
Beiträge: 46
Registriert: 3. Oktober 2007 13:16

Beitrag von LQ »

ich hab ja oben geschrieben, dass ich die integration installt hab, genauso wie ich geschrieben hab, dass ich die commercial hab.

mein Beispiel:

Qt 4.3.0 (Commercial) + QtVs Integration + configure -static.

in der main.cpp #include <QtPlugin> & Q_IMPORT_PLUGIN(das plugin).

und wo muss ich jetzt noch was eintragen?
dhcase
Beiträge: 132
Registriert: 10. Juni 2006 20:38

Beitrag von dhcase »

Ich hab das hier mal kurz beschrieben... wenn man mit VS arbeitet, dann kann man sich die .sln von qmake erzeugen lassen:

Code: Alles auswählen

qmake -tp vc
LQ
Beiträge: 46
Registriert: 3. Oktober 2007 13:16

Beitrag von LQ »

dann bekomm ich ein makrfile. was soll ich damit?
Tobi
Beiträge: 28
Registriert: 22. April 2007 12:17
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von Tobi »

@LQ:
Lass mal nmake drüber laufen (also im Verzeichnis auf einer Konsole nmake eintippen und Enter).

@dhcase:
Also ich scheine einfach zu dumm zu sein. Hier mal meine .pro File:

Code: Alles auswählen

TEMPLATE = app
TARGET = GAU
QT += xml network
QTPLUGIN += qjpeg
#CONFIG += console # for debugging use only

# Input
HEADERS	= /* meine header dateien */
SOURCES	= main.cpp /* etc... */
Und die main.cpp:

Code: Alles auswählen

#include <QApplication>
#include <QtPlugin>

#include "mainwindow.h"

Q_IMPORT_PLUGIN(qjpeg)

int main(int argc, char *argv[])
{
	QApplication app(argc, argv);

	MainWindow mainwindow;
	mainwindow.show();

	return app.exec();
}
Kompilieren geht einwandfrei, aber Linker schreit

Error 1 error LNK2019: unresolved external symbol "class QObject * __cdecl qt_plugin_instance_qjpeg(void)" (?qt_plugin_instance_qjpeg@@YAPAVQObject@@XZ) referenced in function "public: __thiscall StaticqjpegPluginInstance::StaticqjpegPluginInstance(void)" (??0StaticqjpegPluginInstance@@QAE@XZ) main.obj

obwohl das Makefile meiner Meinung nach i.O. ausschaut, da die "qjpeg.lib" unter "LIBS = ..." steht. Ich versteh nicht warum der Linker die nicht linkt :evil:
dhcase
Beiträge: 132
Registriert: 10. Juni 2006 20:38

Beitrag von dhcase »

@ LQ
Wenn du qmake -tp vc aufrufst, dann bekommst du ein .vproj oder .sln - die kannst du einfach in VS öffnen.

@ Tobi
Versuchs mal mit LIBS += qjpeg.lib und bau mal komplett neu (distclean)
Tobi
Beiträge: 28
Registriert: 22. April 2007 12:17
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von Tobi »

Also mit LIBS += qjpeg.lib bekomme ich den Fehler das er die lib nicht öffnen kann, was mich nicht wundert, da ich keine qjpeg.lib habe.

Wenn ich allerdings qjpeg4.lib nehme, bekomme ich den selben Linker Fehler wie oben beschrieben.

Also ich weiß echt nimmer weiter...
dhcase
Beiträge: 132
Registriert: 10. Juni 2006 20:38

Beitrag von dhcase »

Wenn ich Qt statisch baue, dann gibt es nur die qjpeg.lib. Die qjpeg4.lib existiert bei mir nur, wenn Qt dynamisch gebaut ist... also die Frage: hast du Qt wirklich statisch gebaut (configure -static -qt-libjpeg -andere_libs)?
Tobi
Beiträge: 28
Registriert: 22. April 2007 12:17
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von Tobi »

Nein, hab ich das jemals behauptet? Nachdem es nicht dynamisch ging (also die qjpeg4.dll einfach mit im Verzeichnis mitzuliefern), hab ich eben probiert das Plugin zu integrieren. Oder geht das nur bei einem statischen Qt?

Wenn das so ist, wie kann ich dann die qjpeg4.dll dynamisch linken, denn wenn ich sie mitliefere wird diese einfach nicht geöffnet...
dhcase
Beiträge: 132
Registriert: 10. Juni 2006 20:38

Beitrag von dhcase »

Integrieren kannst du die Plugins nur, wenn Qt statisch gebaut wird (lies dir den Link durch, den ich gepostet habe). Bei einem dynamischen Qt müssen die Plugins in ein entsprechendes Unterverzeichnis (imageformats für jpeg)... das lesen der Doku hilft dir weiter!
LQ
Beiträge: 46
Registriert: 3. Oktober 2007 13:16

Beitrag von LQ »

ich hab qt statisch gebaut. kann ich das mit dem .pro -file und qmake irgendwie ignorieren. (Nochmal: Ich hab die Commercial + QtVsIntegration)

qmake bringt mit nämlich immer: unable to create output for...
Zuletzt geändert von LQ am 23. Oktober 2007 17:16, insgesamt 1-mal geändert.
dhcase
Beiträge: 132
Registriert: 10. Juni 2006 20:38

Beitrag von dhcase »

keine Ahnung, ich lass mir aus dem .pro immer die .vcproj oder .sln für VS erstellen...
Tobi
Beiträge: 28
Registriert: 22. April 2007 12:17
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von Tobi »

@dhcase:
Oh man, du hast recht, sobald die dll in "imageformats" ist, klappts. Vielen vielen vielen Dank!

Habe jetzt erst entdeckt das es unter "The Higher-Level API: Writing Qt Extensions" in der Doku steht. Ich hab dort nicht nachgelesen, weil ich dachte dort stehen nur Infos über das Erstellen von Plugins...

Ok, jetzt bin ich geläutert :wink:
LQ
Beiträge: 46
Registriert: 3. Oktober 2007 13:16

Beitrag von LQ »

jetz hab ich dank dem pro file und dem makefile und qmake und nmake zwar meine bilder, aber auf anderen rechnern lassen sich die programme trotzdem nicht starten.
Antworten