Qt4.4.1 unter Vista x64 mit Visual C++ 2008 mit SP1

Verschiedenes zu Qt
Antworten
René
Beiträge: 75
Registriert: 15. August 2006 11:14
Kontaktdaten:

Qt4.4.1 unter Vista x64 mit Visual C++ 2008 mit SP1

Beitrag von René »

Ich habe versucht unter Windows Vista 64bit Qt4.4.1 mit dem neuen Visual C++ 2008 with SP1 (Express Edition) zu kompilieren:

Meine Umgebungsvariablen sind wie immer:

QTDIR = D:\SoftwareDevelopment\C++\Qt\4.4.1
PATH = ...;%QTDIR%\bin
QMAKESPEC = win32-msvc2008

configure bricht bereits ab, wenn er versucht qmake.exe nach D:\SoftwareDevelopment\C++\Qt\4.4.1\bin zu kopieren mit der Meldung "Syntax Error". Wie auch immer, ich habe qmake.exe selbst dorthin kopiert und nochmal configure gestartet, dann lief es sauber durch.

Also habe ich nmake gestartet, doch irgendwann bricht er hiermit ab:

Code: Alles auswählen

        cl -c -FIWebKit_pch.h -YuWebKit_pch.h -Fptmp\obj\debug_shared\QtWebKitd_
pch.pch -nologo -Zm200 -Zc:wchar_t- -Zi -MDd -GR -EHsc -DQT_SHARED -DQT_THREAD_S
UPPORT -DUNICODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DBUILDING_QT__=1 -DUSE_SYSTEM_M
ALLOC -DNDEBUG -DQT_MAKEDLL -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT3
_SUPPORT -DQT_MOC_COMPAT -D_USE_MATH_DEFINES -DBUILD_WEBKIT -DENABLE_ICONDATABAS
E=0 -DENABLE_XPATH=1 -DENABLE_SVG=1 -DWTF_CHANGES=1 -DBUILDING_QT__ -DWTF_USE_JA
VASCRIPTCORE_BINDINGS=1 -DQT_DLL -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -I"
..\..\..\..\include\QtCore" -I"..\..\..\..\include\QtCore" -I"..\..\..\..\includ
e\QtNetwork" -I"..\..\..\..\include\QtNetwork" -I"..\..\..\..\include\QtGui" -I"
..\..\..\..\include\QtGui" -I"..\..\..\..\include" -I"..\WebKit\qt\Api" -I"..\Ja
vaScriptCore" -I"..\JavaScriptCore\kjs" -I"..\JavaScriptCore\bindings" -I"..\Jav
aScriptCore\bindings\c" -I"..\JavaScriptCore\wtf" -I"..\JavaScriptCore\Forwardin
gHeaders" -I"." -I"ForwardingHeaders" -I"platform" -I"platform\network" -I"platf
orm\graphics" -I"loader" -I"page" -I"css" -I"dom" -I"bridge" -I"editing" -I"rend
ering" -I"history" -I"xml" -I"html" -I"plugins" -I"..\..\..\..\include\QtWebKit"
 -I"tmp\rcc\debug_shared" -I"tmp" -I"generated" -I"tmp" -I"..\JavaScriptCore" -I
"..\JavaScriptCore\kjs" -I"..\JavaScriptCore\bindings" -I"..\JavaScriptCore\bind
ings\c" -I"..\JavaScriptCore\wtf" -I"..\JavaScriptCore\bindings\qt" -I"..\JavaSc
riptCore\os-win32" -I"..\JavaScriptCore\pcre" -I"d:\SoftwareDevelopment\C++\Qt\4
.4.1\src\3rdparty\webkit\WebKitBuild\Debug\JavaScriptCore\kjs\tmp" -I"platform\q
t" -I"platform\network\qt" -I"platform\graphics\qt" -I"platform\graphics\svg\qt"
 -I"loader\qt" -I"page\qt" -I"..\WebKit\qt\WebCoreSupport" -I"..\WebKit\qt\Api"
-I"." -I"ForwardingHeaders" -I"..\..\webkit" -I"..\JavaScriptCore\kjs" -I"..\Jav
aScriptCore\bindings" -I"platform" -I"platform\network" -I"platform\graphics" -I
"platform\graphics\svg" -I"platform\graphics\svg\filters" -I"loader" -I"loader\i
con" -I"css" -I"dom" -I"page" -I"bridge" -I"editing" -I"rendering" -I"history" -
I"xml" -I"html" -I"bindings\js" -I"ksvg2" -I"ksvg2\css" -I"ksvg2\svg" -I"ksvg2\m
isc" -I"ksvg2\events" -I"platform\image-decoders" -I"d:\SoftwareDevelopment\C++\
Qt\4.4.1\include\ActiveQt" -I"tmp\moc\debug_shared" -I"." -I"..\..\..\..\mkspecs
\win32-msvc2008" -Fotmp\obj\debug_shared\runtime.obj ..\JavaScriptCore\bindings\
runtime.cpp
runtime.cpp
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\xrefwrap(62) : err
or C2143: Syntaxfehler: Es fehlt ')' vor 'Konstante'
        C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\xrefwrap(8
7): Siehe Verweis auf die Instanziierung der gerade kompilierten Klassen-templat
e "std::tr1::_Pmd_caller<_Ret,_Arg0>".
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\xrefwrap(62) : err
or C2143: Syntaxfehler: Es fehlt ';' vor 'Konstante'
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\xrefwrap(62) : err
or C2238: Unerwartete(s) Token vor ';'
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\xrefwrap(62) : err
or C2988: Unerkannte Vorlagendeklaration/-definition
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\xrefwrap(62) : err
or C2059: Syntaxfehler: 'Konstante'
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\xrefwrap(62) : err
or C2059: Syntaxfehler: ')'
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\xrefwrap(70) : err
or C2334: Unerwartete(s) Token vor '{'; sichtbarer Funktionstext wird übersprung
en
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\xrefwrap(76) : err
or C2143: Syntaxfehler: Es fehlt ')' vor 'Konstante'
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\xrefwrap(76) : err
or C2143: Syntaxfehler: Es fehlt ';' vor 'Konstante'
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\xrefwrap(76) : err
or C2238: Unerwartete(s) Token vor ';'
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\xrefwrap(76) : err
or C2988: Unerkannte Vorlagendeklaration/-definition
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\xrefwrap(76) : err
or C2059: Syntaxfehler: 'Konstante'
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\xrefwrap(76) : err
or C2059: Syntaxfehler: ')'
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\INCLUDE\xrefwrap(84) : err
or C2334: Unerwartete(s) Token vor '{'; sichtbarer Funktionstext wird übersprung
en
NMAKE : fatal error U1077: ""C:\Program Files (x86)\Microsoft Visual Studio 9.0\
VC\BIN\cl.EXE"": Rückgabe-Code "0x2"
Stop.
NMAKE : fatal error U1077: ""C:\Program Files (x86)\Microsoft Visual Studio 9.0\
VC\BIN\nmake.exe"": Rückgabe-Code "0x2"
Stop.
NMAKE : fatal error U1077: "cd": Rückgabe-Code "0x2"
Stop.

d:\SoftwareDevelopment\C++\Qt\4.4.1>
Unter Windows XP 32bit mit Visual C++ 2008 (ohne SP1) mit Qt4.4.1 habe ich keinerlei Probleme. Liegt's an Vista? An 64bit? An SP1 von Visual C++ 2008?

Vielleicht hat jemand einen Tipp?

EDIT:
Ich habe mir mal die betreffende Datei xrefwrap angesehen, der fehler-verursachende Bereich sieht so aus:

Code: Alles auswählen

53  // SUPPORT CLASSES FOR CALL WRAPPERS
54
55	  // TEMPLATE STRUCT _Pmd_caller
56  template<class _Ret,
57  	class _Arg0>
58	struct _Pmd_caller
59	{	// bind object and pointer to member data
60	template<class _Pmd,
61		class _Farg0>
62		static _Ret _Call_pmd(const volatile _Arg0*, _Pmd _Pm, _Farg0 _F0)
63		{	// apply to object
64		return ((_Ret)(_F0.*_Pm));
65		}
66
67	template<class _Pmd,
68		class _Farg0>
69		static _Ret _Call_pmd(const volatile void*, _Pmd _Pm, _Farg0 _F0)
70		{	// apply to smart pointer of type _Farg0
71		return ((*_F0).*_Pm);
72		}
73
74	template<class _Pmd,
75		class _Farg0>
76		static _Ret _Apply_pmd(_Pmd _Pm, _Farg0& _F0)
77		{	// apply to object
78		return (_Call_pmd<_Pmd, _Farg0&>(&_F0, _Pm, _F0));
79		}
80
81	template<class _Pmd,
82		class _Farg0>
83		static _Ret _Apply_pmd(_Pmd _Pm, _Farg0 *_F0)
84		{	// apply to pointer to object
85		return (_Call_pmd<_Pmd, _Farg0&>(_F0, _Pm, *_F0));
86		}
87	};
aber wirklich schlau werde ich da noch nicht draus.
René
Beiträge: 75
Registriert: 15. August 2006 11:14
Kontaktdaten:

Beitrag von René »

Etwas wirklich schlaues ist mir nicht eingefallen, ich vermute auch eher, dass da die Jungs von Nokia/Trolltech mal ran müssen. Ich hab das ganze allerdings recht pragmatisch lösen können. Der Fehler trat im Modul Webkit auf, also habe ich schlicht Qt4.4.1 mit -no-webkit kompiliert und das war's dann auch schon. Alles lief fehlerfrei durch.

Ich glaube nicht, dass es an Vista 64bit liegt, da ich in einer 32bit VC9.0 Konsole eine 32bit Version von Qt kompiliert habe. Ich glaube viel eher, dass es durch das Service Pack 1 für Visual C++ zu diesem Problem gekommen ist.

Wie gesagt, unter WinXP mit Visual C++ 2008 ohne SP1 läuft Qt4.4.1 bei mir auch mit Webkit sauber durch.

Ich kann mit diesem Workaround gut leben, da ich Webkit nicht benötige, vielleicht kann ich mit diesem Tipp ja anderen erstmal helfen, bis es elegantere Lösungen gibt.
alainstgt
Beiträge: 19
Registriert: 22. August 2008 11:37
Wohnort: Stuttgart

liegt wohl am SP1

Beitrag von alainstgt »

da ich das gleiche Problem unter 32bit XP Pro SP3 habe, liegt es weder an Vista noch an der 64bit Version - siehe Thread weiter oben -
Da muß wohl Microsoft ran...
alainstgt
Beiträge: 19
Registriert: 22. August 2008 11:37
Wohnort: Stuttgart

Lösung gefunden

Beitrag von alainstgt »

siehe meinen Thread zum Thema
187Proof
Beiträge: 5
Registriert: 12. Juli 2008 21:25

Beitrag von 187Proof »

Antworten