[Solved] Update von QT 4.2 zu 4.3 verursacht Linkerprobleme

Alles rund um die Programmierung mit Qt
Antworten
Vrenn
Beiträge: 28
Registriert: 17. Oktober 2005 10:16

[Solved] Update von QT 4.2 zu 4.3 verursacht Linkerprobleme

Beitrag von Vrenn »

Hallo

Ich schreibe schon seit längerem an einem Programm mit qt (damals 3) 4 und dcmtk von offis: http://www.dcmtk.org/

Als ich aber bei Gentoo von qt 4.2 auf 4.3 Update läuft zwar der Sourcecode durch, aber der Linker gibt mir haufenweise Fehler auf:

Code: Alles auswählen

../../binary/lib/libdcmdata.a(dcistrmz.o): In function `DcmZLibInputFilter::~DcmZLibInputFilter()':
dcistrmz.cc:(.text+0x2a2): undefined reference to `inflateEnd'
../../binary/lib/libdcmdata.a(dcistrmz.o): In function `DcmZLibInputFilter::~DcmZLibInputFilter()':
dcistrmz.cc:(.text+0x354): undefined reference to `inflateEnd'
../../binary/lib/libdcmdata.a(dcistrmz.o): In function `DcmZLibInputFilter::~DcmZLibInputFilter()':
dcistrmz.cc:(.text+0x400): undefined reference to `inflateEnd'
../../binary/lib/libdcmdata.a(dcistrmz.o): In function `DcmZLibInputFilter::DcmZLibInputFilter()':
dcistrmz.cc:(.text+0x5b6): undefined reference to `inflateInit_'
dcistrmz.cc:(.text+0x759): undefined reference to `inflateInit2_'
../../binary/lib/libdcmdata.a(dcistrmz.o): In function `DcmZLibInputFilter::decompress(void const*, unsigned int)':
dcistrmz.cc:(.text+0x9c0): undefined reference to `inflate'
dcistrmz.cc:(.text+0xb7f): undefined reference to `inflate'
../../binary/lib/libdcmdata.a(dcistrmz.o): In function `DcmZLibInputFilter::DcmZLibInputFilter()':
dcistrmz.cc:(.text+0x1136): undefined reference to `inflateInit_'
dcistrmz.cc:(.text+0x12d9): undefined reference to `inflateInit2_'
../../binary/lib/libdcmdata.a(dcostrmz.o): In function `DcmZLibOutputFilter::compress(void const*, unsigned int, bool)':
dcostrmz.cc:(.text+0x388): undefined reference to `deflate'
dcostrmz.cc:(.text+0x555): undefined reference to `deflate'
../../binary/lib/libdcmdata.a(dcostrmz.o): In function `DcmZLibOutputFilter::~DcmZLibOutputFilter()':
dcostrmz.cc:(.text+0x9de): undefined reference to `deflateEnd'
../../binary/lib/libdcmdata.a(dcostrmz.o): In function `DcmZLibOutputFilter::~DcmZLibOutputFilter()':
dcostrmz.cc:(.text+0xa92): undefined reference to `deflateEnd'
../../binary/lib/libdcmdata.a(dcostrmz.o): In function `DcmZLibOutputFilter::~DcmZLibOutputFilter()':
dcostrmz.cc:(.text+0xb3c): undefined reference to `deflateEnd'
../../binary/lib/libdcmdata.a(dcostrmz.o): In function `DcmZLibOutputFilter::DcmZLibOutputFilter()':
dcostrmz.cc:(.text+0xce0): undefined reference to `deflateInit2_'
../../binary/lib/libdcmdata.a(dcostrmz.o): In function `DcmZLibOutputFilter::DcmZLibOutputFilter()':
dcostrmz.cc:(.text+0xfe2): undefined reference to `deflateInit2_'
collect2: ld gab 1 als Ende-Status zurück
make: *** [ourDicom] Fehler 1
Hat sich die .pro-Datei geändert (in der doc finde ich leider nichts) oder gibt es einen Fehler im Verwenden von qmake?
Da ich glaube im makefile liegt das Problem poste ich gleich auch meine .pro-date:

Code: Alles auswählen

TEMPLATE = app
CONFIG += qt debug
INCLUDEPATH += .\
		../../binary/include/dcmtk/config\
		../../binary/include/dcmtk/dcmdata\
		../../binary/include/dcmtk/ofstd\
		../../binary/include/dcmtk/dcmimgle\
		../../binary/include/dcmtk/dcmimage\
		../../binary/include/dcmtk/dcmjpeg\
		../../binary/include

LIBS += -L../../binary/lib -ldcmdata -ldcmimage\
 	-ldcmjpeg -ldcmimgle\
	-lofstd -lijg8\
	-lijg16 -lijg12
DEFINES += HAVE_CONFIG_H
DEFINES += QT3_SUPPORT_WARNINGS
#QT += qt3support
# Input
HEADERS += GUI.h dicomNavigator.h GUIdata.h container.h dataSource.h dicomDir.h dicomNavigatorItem.h patient.h study.h series.h image.h frame.h bw.h dicomPresentator.h rgb.h dicomFile.h dicomDisplay.h metaInformation.h quickInfoDialog.h huList.h exportDialog.h filterDialog.h measureInfoDialog.h
SOURCES += main.cc GUI.cc dicomNavigator.cc GUIdata.cc container.cc dataSource.cc dicomDir.cc dicomNavigatorItem.cc patient.cc study.cc series.cc image.cc frame.cc bw.cc dicomPresentator.cc rgb.cc dicomFile.cc dicomDisplay.cc metaInformation.cc quickInfoDialog.cc huList.cc exportDialog.cc filterDialog.cc measureInfoDialog.cc
Falls irgendjemand eine Idee haben könnte woran es liegen kann tausend Dank dafür :-)
Zum Problem nochmals: es ist reproduzierbar, (up/downgrade zwischen qt 4.2/4.3)
Mit 4.2 funktioniert es ohne Probleme (was mit dem Einzug von Kde4 aber kaum verwendet werden wird...)
Zuletzt geändert von Vrenn am 22. September 2007 14:01, insgesamt 1-mal geändert.
Vrenn
Beiträge: 28
Registriert: 17. Oktober 2005 10:16

Gelöst

Beitrag von Vrenn »

Danke an alle die gerade vorhatten mir zu helfen, aber nach Murphys Law kam die Lösung mir jetzt nach dem Posting (nach 1 Monat Suche...)

qt-4 muss mit zlib compiled werden. Ob das Gentoo-ebuild dies ab 4.3 nicht mehr getan hatte oder ob die Abhängigkeit erst mit qt 4.3 kam weiß ich nicht, aber für alle Gentoo-Benutzer: USE="zlib" emerge qt bringt Abhilfe.

Ich lass das Posting oben mal, vielleicht brauchts ja noch einer.
Antworten