[QT4.2] Problem mit Qt4 header-Dateien

Alles rund um die Programmierung mit Qt
Antworten
robes
Beiträge: 11
Registriert: 1. Dezember 2006 14:14
Wohnort: DO

[QT4.2] Problem mit Qt4 header-Dateien

Beitrag von robes »

Hallo!

Ich bin dabei ein Programm von Qt3.3.3 nach Qt4.2.0 zu portieren. Alles lief bisher ohne Probleme ab doch nun habe ich, im Thema erwähnt, ein paar Probleme mit Qt4-headern - und zwar unter anderen mit qalgorithms.h. Der fehler sieht so aus:
e:\qt4\include\qtcore\../../src/corelib/tools/qalgorithms.h(348) : error C2678: Binary operator '-' not found (...)
Wenn ich den entsprechenden Code-Abschnitt auskommentiere - geht kompilieren, linken, starten ohne Probleme. Das will ich aber nicht als Lösung belassen...
Es kommen da noch ein paar andere Fehler - alle verweisen auf irgendeine header-Datei im Qt4/include Verzeichniss.
Qt4 ist wohl richtig installiert, da diese Fehler auch bei anderen Kollegen auftreten - und zwar sowohl bei VS2003+Qt4.1.1 als auch - wie bei mir - VS2005+Qt4.2.0.

Kann mir jemand nen Tipp geben?? Ich hab alle mir bekannten Qt-Foren dursucht, google gefragt - alles ohne Ergebnisse :/
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Was ist denn in der Zeile? Ist das wirklich der erste Fehler? Evtl. inkludierst Du aus Versehen noch alte qt3-Header. Wie sieht dein Code aus? Im Grunde kannst du es immer enger eingrenzen indem Du aus der Datei, in der der Fehler passiert, alels andere rausnimmst bis der Fehler nicht mehr auftritt.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Hass
Beiträge: 40
Registriert: 12. Juli 2006 10:42

Beitrag von Hass »

QT += qt3support
robes
Beiträge: 11
Registriert: 1. Dezember 2006 14:14
Wohnort: DO

Beitrag von robes »

Ich galaub' ich hab mich falsch ausgedrückt. Also der Fehler kommt in der Methode qSortHelper von qalgorithms (also nicht in meinem Code):
e:\qt4\include\qtcore\../../src/corelib/tools/qalgorithms.h(370) : error C2678: Binärer Operator '<': Es konnte kein Operator gefunden werden, der einen linksseitigen Operanden vom Typ 'QLinkedList<T>::iterator' akzeptiert (oder keine geeignete Konvertierung möglich)
Ich kommentiere den gesamten Inhalt von der qSortHelper Methode, dann gehts.
Aber Du hast mich auf die Idee gebracht im meinem Code die Stelle zu vermeiden, die qalgorithms verwendet. Bzw. die Stelle auf Qt4 zu umschreiben - weil soweit ich weiss ist qalgorithms für Qt3 kompatibilität verantwortlich.
@Hass
Ich benutzte VS2005 "ohne" .pro File, daher würde "QT += qt3support" nichts bringen. Allerdings habe ich die Makros definiert QT3_SUPPORT;QT3_SUPPORT_LIB - es sollte laut Doku reichen.
edit: DQT3_SUPPORT definieren ändert auch nichts

Danke für erste für Eure Antworten! Ich meld' mich dann wie die Lage auf dem Schlachtfeld aussieht ;)
robes
Beiträge: 11
Registriert: 1. Dezember 2006 14:14
Wohnort: DO

Beitrag von robes »

ok, hab den Sündenbock für den qalgorithms-Fehler gefunden: ich lass qSort() auf Q3ValueList laufen - wenn ich diese Zeile auskommentiere kommen die Fehler nicht. Das würde wieder auf qt3-inkopatibilität hinweisen, ich nutze aber tonnenweise Q3-Support Klassen und es kommen keine fehler... komisch...

edit: zu früh gefreut...
Ich hab die Liste durch eine QLinkedList eretzt, aber der Fehler kommt immernoch...

edit2: :lol:
Ok, LinkedList war das Problem, genauer: deren Iterator. Der weigert sich subtrahiert zu werden ;) QList genommen und gut ist. :wink:
Antworten