Seite 1 von 1

Kann Qt unter windows nicht kompilieren, .h Dateien fehlen

Verfasst: 18. Januar 2010 01:32
von PhilippM
Servus,

habe mir unter Linux soeben problemlos einen git-clone vom 4.6-stable branch gebaut.
Wollte dasselbe jetzt auch unter windows machen.

Aber sowohl bei msvc2008 als auch bei mingw scheitert bereits das configure:

Umgebungsvariablen: Im PATH sind eingetragen: C:\Qt\qt\bin und QTDIR ist auf C:\Qt\qt\ gesetzt. Über Shellscript wird entweder C:\Mingw\bin in den PATH hinzugefügt, beziehungsweise msvc2008 wird über den speziellen konsolen-bat gestartet.

Ausgabe von msvc2008:

Code: Alles auswählen

QMAKESPEC...................win32-msvc2008 (commandline)
Architecture................windows
Maketool....................nmake
Debug symbols...............yes
Link Time Code Generation...no
Accessibility support.......yes
STL support.................yes
Exception support...........yes
RTTI support................yes
MMX support.................yes
3DNOW support...............yes
SSE support.................yes
SSE2 support................yes
IWMMXT support..............no
OpenGL support..............yes
Direct3D support............no
OpenSSL support.............no
QtDBus support..............no
QtXmlPatterns support.......yes
Phonon support..............yes
WebKit support..............yes
QtScriptTools support.......yes
Graphics System.............raster
Qt3 compatibility...........yes

Third Party Libraries:
    ZLIB support............qt
    GIF support.............plugin
    TIFF support............plugin
    JPEG support............plugin
    PNG support.............qt
    MNG support.............plugin

Styles:
    Windows.................yes
    Windows XP..............yes
    Windows Vista...........yes
    Plastique...............yes
    Cleanlooks..............yes
    Motif...................yes
    CDE.....................yes
    Windows CE..............no
    Windows Mobile..........no

Sql Drivers:
    ODBC....................no
    MySQL...................no
    OCI.....................no
    PostgreSQL..............no
    TDS.....................no
    DB2.....................no
    SQLite..................plugin (qt)
    SQLite2.................no
    InterBase...............no

Sources are in..............C:\Qt\qt
Build is done in............C:\Qt\qt
Install prefix..............C:\Qt\qt
Headers installed to........C:\Qt\qt\include
Libraries installed to......C:\Qt\qt\lib
Plugins installed to........C:\Qt\qt\plugins
Binaries installed to.......C:\Qt\qt\bin
Docs installed to...........C:\Qt\qt\doc
Data installed to...........C:\Qt\qt
Translations installed to...C:\Qt\qt\translations
Examples installed to.......C:\Qt\qt\examples
Demos installed to..........C:\Qt\qt\demos

Creating qmake...

Microsoft (R) Program Maintenance Utility, Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

        cl -c -Foproject.obj  -W3 -nologo -O2  -I. -Igenerators -Igenerators\uni
x -Igenerators\win32 -Igenerators\mac  -IC:\Qt\qt\include -IC:\Qt\qt\include\QtC
ore  -IC:\Qt\qt\include -IC:\Qt\qt\include\QtCore  -IC:\Qt\qt\src\corelib\global
  -IC:\Qt\qt\include\QtScript  -IC:\Qt\qt\mkspecs\win32-msvc2008   -DQT_NO_TEXTC
ODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL  -DQT_NO_C
OMPRESS -DUNICODE -DHAVE_QCONFIG_CPP -DQT_BUILD_QMAKE -DQT_NO_THREAD  -DQT_NO_QO
BJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM -DQT_NO_PCRE -DQT_BOOTSTRAPPED   -
DQMAKE_OPENSOURCE_EDITION project.cpp
project.cpp
c:\qt\qt\qmake\project.h(45) : fatal error C1083: Datei (Include) kann nicht geö
ffnet werden: "qstringlist.h": No such file or directory
NMAKE : fatal error U1077: ""C:\Programme\Microsoft Visual Studio 9.0\VC\BIN\cl.
EXE"": Rückgabe-Code "0x2"
Stop.

Microsoft (R) Program Maintenance Utility, Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

        del qbitarray.obj
C:\Qt\qt\qmake\qbitarray.obj konnte nicht gefunden werden
        del qbuffer.obj
C:\Qt\qt\qmake\qbuffer.obj konnte nicht gefunden werden
        del qcryptographichash.obj
C:\Qt\qt\qmake\qcryptographichash.obj konnte nicht gefunden werden
        del qlinkedlist.obj

...bla ...bla, noch ein paar hundert weitere

C:\Qt\qt\qmake\pbuilder_pbx.obj konnte nicht gefunden werden
        del qnumeric.obj  -del qscriptasm.obj  -del qscriptast.obj  -del qscript
astvisitor.obj  -del qscriptcompiler.obj  -del qscriptecmaarray.obj  -del qscrip
tecmaboolean.obj  -del qscriptecmacore.obj  -del qscriptecmadate.obj  -del qscri
ptecmafunction.obj  -del qscriptecmaglobal.obj  -del qscriptecmamath.obj  -del q
scriptecmanumber.obj  -del qscriptecmaobject.obj  -del qscriptecmaregexp.obj  -d
el qscriptecmastring.obj  -del qscriptecmaerror.obj  -del qscriptcontext_p.obj
-del qscriptengine.obj  -del qscriptengine_p.obj  -del qscriptengineagent.obj  -
del qscriptextenumeration.obj  -del qscriptextvariant.obj  -del qscriptcontext.o
bj  -del qscriptcontextinfo.obj  -del qscriptfunction.obj  -del qscriptgrammar.o
bj  -del qscriptlexer.obj  -del qscriptclassdata.obj  -del qscriptparser.obj  -d
el qscriptprettypretty.obj  -del qscriptsyntaxchecker.obj  -del qscriptclass.obj
  -del qscriptclasspropertyiterator.obj  -del qscriptstring.obj  -del qscriptval
ue.obj  -del qscriptvalueimpl.obj  -del qscriptvalueiterator.obj  -del qscriptva
lueiteratorimpl.obj
C:\Qt\qt\qmake\qnumeric.obj konnte nicht gefunden werden
        del vc60.pdb
C:\Qt\qt\qmake\vc60.pdb konnte nicht gefunden werden
        del vc70.pdb
C:\Qt\qt\qmake\vc70.pdb konnte nicht gefunden werden
        del qmake.pdb
C:\Qt\qt\qmake\qmake.pdb konnte nicht gefunden werden
        del qmake.ilk
C:\Qt\qt\qmake\qmake.ilk konnte nicht gefunden werden
        del qmake.tds
C:\Qt\qt\qmake\qmake.tds konnte nicht gefunden werden

Microsoft (R) Program Maintenance Utility, Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

        cl -c -Foproject.obj  -W3 -nologo -O2  -I. -Igenerators -Igenerators\uni
x -Igenerators\win32 -Igenerators\mac  -IC:\Qt\qt\include -IC:\Qt\qt\include\QtC
ore  -IC:\Qt\qt\include -IC:\Qt\qt\include\QtCore  -IC:\Qt\qt\src\corelib\global
  -IC:\Qt\qt\include\QtScript  -IC:\Qt\qt\mkspecs\win32-msvc2008   -DQT_NO_TEXTC
ODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL  -DQT_NO_C
OMPRESS -DUNICODE -DHAVE_QCONFIG_CPP -DQT_BUILD_QMAKE -DQT_NO_THREAD  -DQT_NO_QO
BJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM -DQT_NO_PCRE -DQT_BOOTSTRAPPED   -
DQMAKE_OPENSOURCE_EDITION project.cpp
project.cpp
c:\qt\qt\qmake\project.h(45) : fatal error C1083: Datei (Include) kann nicht geö
ffnet werden: "qstringlist.h": No such file or directory
NMAKE : fatal error U1077: ""C:\Programme\Microsoft Visual Studio 9.0\VC\BIN\cl.
EXE"": Rückgabe-Code "0x2"
Stop.
Building qmake failed, return code 2
Wenn ich die makespecs auf win32-g++ setze und mit mingw kompilieren versuche, kommt das:

Code: Alles auswählen

option.h:179: error: 'QStringList' does not name a type
option.h: In static member function 'static QString Option::fixPathToLocalOS(con
st QString&, bool, bool)':
option.h:121: error: return type 'struct QString' is incomplete
option.h:127: error: invalid use of incomplete type 'struct QString'
C:\Qt\qt/src/corelib/global/qglobal.h:1270: error: forward declaration of 'struc
t QString'
option.h:127: error:   initializing argument 1 of 'static QString Option::fixStr
ing(QString, uchar)'

bla... bla.. bla..

cachekeys.h: In function 'void qmakeDeleteCacheClear_QHashFileFixifyCacheKeyQStr
ing(void*)':
cachekeys.h:174: error: expected type-specifier before 'QHash'
cachekeys.h:174: error: expected '>' before 'QHash'
cachekeys.h:174: error: expected '(' before 'QHash'
cachekeys.h:174: error: 'QHash' was not declared in this scope
cachekeys.h:174: error: expected primary-expression before ',' token
cachekeys.h:174: error: expected primary-expression before '>' token
cachekeys.h:174: error: expected primary-expression before '>' token
cachekeys.h:174: error: expected ')' before ';' token
cachekeys.h: In function 'void qmakeFreeCacheClear(void*)':
cachekeys.h:175: error: 'free' was not declared in this scope
project.cpp: At global scope:
project.cpp:80: error: expected constructor, destructor, or type conversion befo
re '<' token
mingw32-make: *** [project.o] Error 1
Building qmake failed, return code 2
Ich habe letztens schonmal unter windows den Kram selbst kompiliert, hat eigentlich sofort geklappt, kann mich nicht erinnern, das ich damals was speziell anders gemacht hätte.

Was habe ich übersehen?

Phil

Verfasst: 18. Januar 2010 06:28
von Christian81
Perl installiert?

Verfasst: 18. Januar 2010 08:35
von PhilippM
Christian81 hat geschrieben:Perl installiert?
Wtf?
Nein. Seit wann brauch man das und wo ist das dokumentiert? Hier jedenfalls nicht: http://qt.nokia.com/doc/4.6/requirements-win.html

Aber danke, werde es mal probieren.

Verfasst: 18. Januar 2010 08:41
von Christian81
Die requirements sind nicht für git, sondern nur für Source-Packages ...
Perl ist nötig um die Header-Dateien zu erstellen.

Verfasst: 18. Januar 2010 11:51
von PhilippM
Danke,
jetzt funktionierts.

Was wird denn da gemacht, was bei den Source-Downloads nicht gebraucht wird?

Gruß,
Phil

Verfasst: 18. Januar 2010 18:01
von Christian81
Na die Header werden erstellt... sonst hättest Du ja nicht das Problem, oder?
Siehe syncqt in bin/