Qt 4.5.2 in MSVC 2008: compiler error C2182
Qt 4.5.2 in MSVC 2008: compiler error C2182
Was ich tat:
qt-win-opensource-4.5.2-mingw.exe herunter geladen;
MinGW-3.4.2.exe herunter geladen;
Qt installiert;
Qt konfiguriert mit "configure -no-sql-sqlite -no-qt3support -no-opengl -platform win32-msvc2008 -no-libtiff -no-dbus -no-phonon -no-phonon-backend -no-webkit";
aufgerufen: nmake;
qt-vs-addin-1.0.2.exe herunter geladen und installiert;
Alles lief einwandfrei und fehlerlos.
Dann startete ich MSVC 2008 und öffnete meine solution and kompilierte es im "Debug" mode.
Ich bekomme enttäuschende 30 Fehler, und alle lauten:
c:programmeqt4.5.2includeqtcore../../src/corelib/tools/qvector.h(112) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
Bemerkung:
Parallel ist noch die ältere Version von Visual Studio (MSVC 2005) and Qt 4.2.1 are installed.
Die Variable QTDIR ist aber gesetzt auf: "C:ProgrammeQt4.5.2"
Nervös macht mich die Bemerkung in den mitgelieferten FAQ.txt: "download qt-win-eval-4.5.2-vs2008.exe", aber dieses File scheint bei Trolltech/Nokia unbekannt.
Wäre t(r)oll, wenn mir jemand wertvolle Tipps geben kann.
qt-win-opensource-4.5.2-mingw.exe herunter geladen;
MinGW-3.4.2.exe herunter geladen;
Qt installiert;
Qt konfiguriert mit "configure -no-sql-sqlite -no-qt3support -no-opengl -platform win32-msvc2008 -no-libtiff -no-dbus -no-phonon -no-phonon-backend -no-webkit";
aufgerufen: nmake;
qt-vs-addin-1.0.2.exe herunter geladen und installiert;
Alles lief einwandfrei und fehlerlos.
Dann startete ich MSVC 2008 und öffnete meine solution and kompilierte es im "Debug" mode.
Ich bekomme enttäuschende 30 Fehler, und alle lauten:
c:programmeqt4.5.2includeqtcore../../src/corelib/tools/qvector.h(112) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
Bemerkung:
Parallel ist noch die ältere Version von Visual Studio (MSVC 2005) and Qt 4.2.1 are installed.
Die Variable QTDIR ist aber gesetzt auf: "C:ProgrammeQt4.5.2"
Nervös macht mich die Bemerkung in den mitgelieferten FAQ.txt: "download qt-win-eval-4.5.2-vs2008.exe", aber dieses File scheint bei Trolltech/Nokia unbekannt.
Wäre t(r)oll, wenn mir jemand wertvolle Tipps geben kann.
Re: Qt 4.5.2 in MSVC 2008: compiler error C2182
Kann es sein, dass beim QTDIR der Fehler liegt?StefanG hat geschrieben: c:programmeqt4.5.2includeqtcore../../src/corelib/tools/qvector.h(112) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
Bemerkung:
Parallel ist noch die ältere Version von Visual Studio (MSVC 2005) and Qt 4.2.1 are installed.
Die Variable QTDIR ist aber gesetzt auf: "C:ProgrammeQt4.5.2"
Dort gehören doch sicher noch "/" oder "" dazu.
Und das include-Verzeichnis scheint auch nicht korrekt zu sein.
Linux, das längste Text-Adventure aller Zeiten
War eine gute Idee und ich überprüfte beides.
Leider liegt darin nicht der Fehler, wäre auch zu einfach gewesen...war aber ein netter Versuch.
Irgendwie sind meine Backslashes verschluckt worden; jetzt also korrekt:
QTDIR = C:\Programme\Qt\4.5.2
Die include-Verzeichnisse sind in VS mit "QTDIR" angegeben.
Ich befürchte, mir fehlt ein Patch o.ä. in VS oder in Qt.
Denn der reportete Fehler verweist auf einen Typ, der zuvor mit
template <typename T>
deklariert wurde. Und das ist durchaus gültig.
Leider liegt darin nicht der Fehler, wäre auch zu einfach gewesen...war aber ein netter Versuch.
Irgendwie sind meine Backslashes verschluckt worden; jetzt also korrekt:
QTDIR = C:\Programme\Qt\4.5.2
Die include-Verzeichnisse sind in VS mit "QTDIR" angegeben.
Ich befürchte, mir fehlt ein Patch o.ä. in VS oder in Qt.
Denn der reportete Fehler verweist auf einen Typ, der zuvor mit
template <typename T>
deklariert wurde. Und das ist durchaus gültig.
Aus reiner Neugier: warum hast du eine fertige Qt-Version (qt-win-opensource-4.5.2-mingw) runtergeladen und danach nochmals eine erstellt? Entweder nimmt man doch das fertige Paket (qt-win-opensource-4.5.2-mingw) oder man erstellt selbst eine aus mingw und dem Windows-Source (qt-win-opensource-src-4.5.2). Die beiden Varianten duerfen ausserdem nicht vermischt werden...qt-win-opensource-4.5.2-mingw.exe herunter geladen;
MinGW-3.4.2.exe herunter geladen;
Qt installiert;
Qt konfiguriert mit "configure -no-sql-sqlite -no-qt3support -no-opengl -platform win32-msvc2008 -no-libtiff -no-dbus -no-phonon -no-phonon-backend -no-webkit";
Im Detail sollte dir das eher ein Windows-Experte erklaeren (evt. hilft auch die Forensuche) aber so in etwa:
- den ganzen mingw-Kram wegraeumen
- Qt-Sourcen fuer Windows downloaden
- mit MS-Compiler erstellen: http://doc.trolltech.com/4.5/install-win.html
- qt-vs-integration installieren.
- den ganzen mingw-Kram wegraeumen
- Qt-Sourcen fuer Windows downloaden
- mit MS-Compiler erstellen: http://doc.trolltech.com/4.5/install-win.html
- qt-vs-integration installieren.
Jau, ich befreite mich also von MinGW; ich lud nun "qt-sdk-win-opensource-2009.03.1.exe" von der Qt-Downloadseite und entpackte es.
Stundenlang installierte und kompilierte Qt.
Die "Qt Visual Studio Integration" war schon Anfang Juli installiert (autoexp.dat hat etliche QT Ergänzungen)
Dann endlich startete ich Visual Studio 2008 erneut, lud meine solution, kontrollierte und änderte via Qt-Qt Optionen die Qt-Version und kompilierte erneut mein Projekt:
Und wieder tauchen die bekannten 30 Fehler
...
c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(112) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
.\PCHClr.cpp(2): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template "QVector<T>".
...
Es muss also etwas Grundsätzliches sein, was fehlt.
qvector.h ist zwar in Qt4.5 verändert, aber der Klassen-template ist unverändert.
Stundenlang installierte und kompilierte Qt.
Die "Qt Visual Studio Integration" war schon Anfang Juli installiert (autoexp.dat hat etliche QT Ergänzungen)
Dann endlich startete ich Visual Studio 2008 erneut, lud meine solution, kontrollierte und änderte via Qt-Qt Optionen die Qt-Version und kompilierte erneut mein Projekt:
Und wieder tauchen die bekannten 30 Fehler
...
c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(112) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
.\PCHClr.cpp(2): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template "QVector<T>".
...
Es muss also etwas Grundsätzliches sein, was fehlt.
qvector.h ist zwar in Qt4.5 verändert, aber der Klassen-template ist unverändert.
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Ok. Here we go.
Im Anhang ist mein Log-Auszug vom Compilerlauf.
Mein Projekt lief bereits unter Visual Studio 2005 + Qt 4.2.1 (seit April 2008 !).
Nun stelle ich um auf MSVC2008 + Qt 4.5.2; hier konnte ich mein Projekt noch nicht fehlerfrei kompilieren.
Nochmal der Hinweis: ich habe noch parallel Visual Studio 2005 installiert und die alte Version Qt 4.2.1; zur Not will ich schnell zurückschwenken, ohne alles neu zu installieren. Ich hoffe nicht, dass es stört...
Die Variablen PATH und QTDIR stehen wie folgt:
PATH="... C:\Programme\Qt\2009.03\qt\bin"
QTDIR="C:\Programme\Qt\2009.03\qt"
Im Anhang ist mein Log-Auszug vom Compilerlauf.
Mein Projekt lief bereits unter Visual Studio 2005 + Qt 4.2.1 (seit April 2008 !).
Nun stelle ich um auf MSVC2008 + Qt 4.5.2; hier konnte ich mein Projekt noch nicht fehlerfrei kompilieren.
Nochmal der Hinweis: ich habe noch parallel Visual Studio 2005 installiert und die alte Version Qt 4.2.1; zur Not will ich schnell zurückschwenken, ohne alles neu zu installieren. Ich hoffe nicht, dass es stört...
Die Variablen PATH und QTDIR stehen wie folgt:
PATH="... C:\Programme\Qt\2009.03\qt\bin"
QTDIR="C:\Programme\Qt\2009.03\qt"
Anhang wurde mir verboten...
Darum kopiere ich eben alles rein:
1>------ Neues Erstellen gestartet: Projekt: WayChargeTool, Konfiguration: Debug Win32 ------
1>Die Zwischen- und Ausgabedateien für das Projekt "xxx" mit der Konfiguration "Debug|Win32" werden gelöscht.
1>Compiling Qt resource file: .\xxx.qrc...
1>Uic'ing
...
1>Moc'ing
...
1>Kompilieren...
1>PCHClr.cpp
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(301) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(302) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(303) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(304) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(305) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(306) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(307) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(308) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(310) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(311) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(312) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(314) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(315) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(316) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(317) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(318) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(319) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(320) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(321) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(322) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(323) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(325) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(326) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(328) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(112) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1> .\PCHClr.cpp(2): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template "QVector<T>".
1> with
1> [
1> T=void
1> ]
1> c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qhash.h(565): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template "QHashDummyNode<Key,T>".
1> with
1> [
1> Key=QAccessible::Method,
1> T=QHashDummyValue
1> ]
1> c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qhash.h(563): Bei der Kompilierung der Klassen-template der void QHash<Key,T>::detach_helper(void)-Memberfunktion
1> with
1> [
1> Key=QAccessible::Method,
1> T=QHashDummyValue
1> ]
1> c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qhash.h(540): Bei der Kompilierung der Klassen-template der void QHash<Key,T>::freeData(QHashData *)-Memberfunktion
1> with
1> [
1> Key=QAccessible::Method,
1> T=QHashDummyValue
1> ]
1> c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qset.h(231): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template "QHash<Key,T>".
1> with
1> [
1> Key=QAccessible::Method,
1> T=QHashDummyValue
1> ]
1> c:\programme\qt\2009.03\qt\include\qtgui\../../src/gui/accessible/qaccessible.h(358): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template "QSet<T>".
1> with
1> [
1> T=QAccessible::Method
1> ]
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(138) : error C2182: 'at': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(139) : error C2182: '[]': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(140) : error C2182: '[]': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(141) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(142) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(143) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(144) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(145) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(149) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(151) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(152) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(153) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(154) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(234) : error C2182: 'x': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(235) : error C2182: 'x': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(241) : error C2182: 'first': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(242) : error C2182: 'first': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(243) : error C2182: 'last': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(244) : error C2182: 'last': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(245) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(246) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(250) : error C2182: 'defaultValue': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(256) : error C2182: 'reference': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(257) : error C2182: 'const_reference': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(266) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(267) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(272) : error C2182: 'front': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(281) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(283) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>Das Buildprotokoll wurde unter "xxx" gespeichert.
1>WayChargeTool - 30 Fehler, 24 Warnung(en)
========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========
Darum kopiere ich eben alles rein:
1>------ Neues Erstellen gestartet: Projekt: WayChargeTool, Konfiguration: Debug Win32 ------
1>Die Zwischen- und Ausgabedateien für das Projekt "xxx" mit der Konfiguration "Debug|Win32" werden gelöscht.
1>Compiling Qt resource file: .\xxx.qrc...
1>Uic'ing
...
1>Moc'ing
...
1>Kompilieren...
1>PCHClr.cpp
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(301) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(302) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(303) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(304) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(305) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(306) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(307) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(308) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(310) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(311) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(312) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(314) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(315) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(316) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(317) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(318) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(319) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(320) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(321) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(322) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(323) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(325) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(326) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qchar.h(328) : warning C4561: '__fastcall' ist mit der Option '/clr' inkompatibel: Konvertierung nach '__stdcall' erfolgt
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(112) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1> .\PCHClr.cpp(2): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template "QVector<T>".
1> with
1> [
1> T=void
1> ]
1> c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qhash.h(565): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template "QHashDummyNode<Key,T>".
1> with
1> [
1> Key=QAccessible::Method,
1> T=QHashDummyValue
1> ]
1> c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qhash.h(563): Bei der Kompilierung der Klassen-template der void QHash<Key,T>::detach_helper(void)-Memberfunktion
1> with
1> [
1> Key=QAccessible::Method,
1> T=QHashDummyValue
1> ]
1> c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qhash.h(540): Bei der Kompilierung der Klassen-template der void QHash<Key,T>::freeData(QHashData *)-Memberfunktion
1> with
1> [
1> Key=QAccessible::Method,
1> T=QHashDummyValue
1> ]
1> c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qset.h(231): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template "QHash<Key,T>".
1> with
1> [
1> Key=QAccessible::Method,
1> T=QHashDummyValue
1> ]
1> c:\programme\qt\2009.03\qt\include\qtgui\../../src/gui/accessible/qaccessible.h(358): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-template "QSet<T>".
1> with
1> [
1> T=QAccessible::Method
1> ]
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(138) : error C2182: 'at': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(139) : error C2182: '[]': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(140) : error C2182: '[]': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(141) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(142) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(143) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(144) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(145) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(149) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(151) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(152) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(153) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(154) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(234) : error C2182: 'x': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(235) : error C2182: 'x': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(241) : error C2182: 'first': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(242) : error C2182: 'first': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(243) : error C2182: 'last': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(244) : error C2182: 'last': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(245) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(246) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(250) : error C2182: 'defaultValue': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(256) : error C2182: 'reference': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(257) : error C2182: 'const_reference': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(266) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(267) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(272) : error C2182: 'front': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(281) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>c:\programme\qt\2009.03\qt\include\qtcore\../../src/corelib/tools/qvector.h(283) : error C2182: 't': Unzulässige Verwendung des Typs 'void'
1>Das Buildprotokoll wurde unter "xxx" gespeichert.
1>WayChargeTool - 30 Fehler, 24 Warnung(en)
========== Alles neu erstellen: 0 erfolgreich, Fehler bei 1, 0 übersprungen ==========
-
- Beiträge: 7319
- Registriert: 26. August 2004 14:11
- Wohnort: Bremen
- Kontaktdaten:
Vom Übersetzen von Qt mit VS2005 SP1 ist bekannt, dass dort Template-Code nicht richtig übersetzt werden kann, ein Patch behebt dieses Problem. Ich weiß jedoch nicht, ob dieser Fehler bei VS2008 wieder drin ist!
http://mm-werkstatt.informatik.uni-augs ... qt2005.pdf
http://mm-werkstatt.informatik.uni-augs ... qt2005.pdf
Setze mal
SET QMAKESPEC=win32-msvc2008
Du hast wahrscheinlich eine falsche Voreinstellung für den Compiler, denn __fastcall ist, wenn ich mich nicht irre, für VS2008 Win32 obsolet !
Das ist ein Auszug aus der /src/corelib/globals/globals.h:
#if defined(__i386__) || defined(_WIN32) || defined(_WIN32_WCE)
# if defined(Q_CC_GNU)
#if !defined(Q_CC_INTEL) && ((100*(__GNUC__ - 0) + 10*(__GNUC_MINOR__ - 0) + __GNUC_PATCHLEVEL__) >= 332)
# define QT_FASTCALL __attribute__((regparm(3)))
#else
# define QT_FASTCALL
#endif
# elif defined(Q_CC_MSVC) && (_MSC_VER > 1300 || defined(Q_CC_INTEL))
# define QT_FASTCALL __fastcall
# else
# define QT_FASTCALL
# endif
#else
# define QT_FASTCALL
#endif
SET QMAKESPEC=win32-msvc2008
Du hast wahrscheinlich eine falsche Voreinstellung für den Compiler, denn __fastcall ist, wenn ich mich nicht irre, für VS2008 Win32 obsolet !
Das ist ein Auszug aus der /src/corelib/globals/globals.h:
#if defined(__i386__) || defined(_WIN32) || defined(_WIN32_WCE)
# if defined(Q_CC_GNU)
#if !defined(Q_CC_INTEL) && ((100*(__GNUC__ - 0) + 10*(__GNUC_MINOR__ - 0) + __GNUC_PATCHLEVEL__) >= 332)
# define QT_FASTCALL __attribute__((regparm(3)))
#else
# define QT_FASTCALL
#endif
# elif defined(Q_CC_MSVC) && (_MSC_VER > 1300 || defined(Q_CC_INTEL))
# define QT_FASTCALL __fastcall
# else
# define QT_FASTCALL
# endif
#else
# define QT_FASTCALL
#endif
An peter999:
Vielen Dank, peter999.
QMAKESPEC war nicht gesetzt !
Ich richtete es ein, startete MSVC neu und compilierte und bekam alle Warnings und Errors wieder...es hat also leider nichts gebracht.
Dagegen versuchte ich folgendes: in qglobal.h kommentierte ich den Zusatz "__fastcall" einfach mal aus. Damit erreichte ich, dass zumindest die vielen Warnings wegfallen !
An DarkWotan:
Das klingt sehr vielversprechend, zumal alle meine Fehler mit dem template zu tun haben. Leider existiert kein Patch für MSVC2008+SP1 von irgendwem. Und den von MSVC2005 zu nehmen, ist mir zu heikel, denn wer weiss denn schon, was damit "verschlimmbessert" wird ?
An Christian81:
Also, qvector.h wirft den Fehler...
Ich befürchte nach wie vor, dass entweder Qt mit MSVC2008 noch nicht in Gänze getestet wurde oder ich eine Kleinigkeit zu installieren oder zu setzen vergaß.
Vielen Dank, peter999.
QMAKESPEC war nicht gesetzt !
Ich richtete es ein, startete MSVC neu und compilierte und bekam alle Warnings und Errors wieder...es hat also leider nichts gebracht.
Dagegen versuchte ich folgendes: in qglobal.h kommentierte ich den Zusatz "__fastcall" einfach mal aus. Damit erreichte ich, dass zumindest die vielen Warnings wegfallen !
An DarkWotan:
Das klingt sehr vielversprechend, zumal alle meine Fehler mit dem template zu tun haben. Leider existiert kein Patch für MSVC2008+SP1 von irgendwem. Und den von MSVC2005 zu nehmen, ist mir zu heikel, denn wer weiss denn schon, was damit "verschlimmbessert" wird ?
An Christian81:
Also, qvector.h wirft den Fehler...
Ich befürchte nach wie vor, dass entweder Qt mit MSVC2008 noch nicht in Gänze getestet wurde oder ich eine Kleinigkeit zu installieren oder zu setzen vergaß.