Qt static build

dsNDesign

Erfahrenes Mitglied
Hei,
ich habe gerade ein Problem beim static builden von Qt 5.1.0.
Habe mir die source Files runtergeladen, danach das configure Skript ausgeführt und dann mit mingw als Compiler das make Kommando ausgeführt.

Nach einer Weile bekomme ich dann aber folgenden Fehler:

mingw32-make[4]: Entering directory `E:/Qt/qt5/qtxmlpatterns/tools/xmlpatterns'
g++ -c -pipe -fno-keep-inline-dllexport -O2 -std=c++0x -fno-exceptions -frtti -W
all -Wextra -DUNICODE -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG -DQT_XMLPATTERNS_LIB -DQT
_NETWORK_LIB -DQT_CORE_LIB -I. -I"E:\MySQL\include" -I"..\..\include" -I"..\..\i
nclude\QtXmlPatterns" -I"E:\Qt\qt5\qtbase\include" -I"E:\Qt\qt5\qtbase\include\Q
tXmlPatterns" -I"..\..\include\QtXmlPatterns\5.1.0" -I"..\..\include\QtXmlPatter
ns\5.1.0\QtXmlPatterns" -I"E:\Qt\qt5\qtbase\include\QtNetwork" -I"E:\Qt\qt5\qtba
se\include\QtCore" -I".moc\release_static" -I"E:\Qt\qt5\qtbase\mkspecs\win32-g++
" -o .obj\release_static\main.o main.cpp
main.cpp: In Elementfunktion »virtual QVariant PatternistApplicationParser::defa
ultValue(const QApplicationArgument&) const«:
main.cpp:196:36: Fehler: »_fileno« wurde in diesem Gültigkeitsbereich nicht defi
niert
mingw32-make[4]: *** [.obj/release_static/main.o] Error 1
mingw32-make[4]: Leaving directory `E:/Qt/qt5/qtxmlpatterns/tools/xmlpatterns'
mingw32-make[3]: *** [release] Error 2
mingw32-make[3]: Leaving directory `E:/Qt/qt5/qtxmlpatterns/tools/xmlpatterns'
mingw32-make[2]: *** [sub-xmlpatterns-make_first] Error 2
mingw32-make[2]: Leaving directory `E:/Qt/qt5/qtxmlpatterns/tools'
mingw32-make[1]: *** [sub-tools-make_first] Error 2
mingw32-make[1]: Leaving directory `E:/Qt/qt5/qtxmlpatterns'
mingw32-make: *** [module-qtxmlpatterns-make_first] Error 2

Die gleiche Meldung kommt auch, wenn ich mir die Paketdateien über github hol.

Mein configure:
configure -static -opensource -nomake examples -nomake tests -opengl desktop -qt-sql-mysql -I E:\MySQL\include -L E:\MySQL\lib\opt -l libmysql -qt-libjpeg -qt-libpng

Unter Qt4 gab es ja noch den Parameter -no-xmlpatterns. Bei Qt5 gibt es diesen allerdings nicht mehr.

Hat jemand einen Rat, wie ich diesen Fehler umgehen könnte?

Gruß
 
Hi.

_fileno ist bei MinGW im stdio.h Header deklariert.

Evtl. ist lediglich cstdio nicht in der Datei eingebunden?

Ein anderes Problem könnte sein, daß _fileno nur deklariert wird wenn nicht der strikte ANSI Modus aktiviert ist.

Wenn ich mich recht erinnere aktiviert die Option -std=c++0x auch gleichzeitig diesen Modus, so dass es zu dem Fehler kommen kann.

Einfachstes Workaround: editiere die stdio.h Datei und füge einfach ein
C:
#undef  __STRICT_ANSI__
ein.
 
Ok, das builden von Qt hat jetzt schonmal geklappt. Danke dafür.
Wenn ich jedoch mein Programm jetzt kompiliere, funktioniert meine MySQL Datenbankanbindung nicht. Er zeigt mir aber auch keine Warnung an, er bekommt einfach nur keine Daten geliefert. Jemand ne Idee?
 
Zurück