2016-07-22 12 views
1

Als ich versuchte, Qt 5.7 statisch, um zu kompilieren, eine Standalone-Anwendung für Windows Deployment mit allen Abhängigkeiten zu erhalten, wie here erwähnt habe ich die folgenden Fehler:Wie kann ich diesen Buildfehler beheben, wenn ich Qt 5.7 statisch mit MinGW erstelle?

C:\Qt\Qt5.7.0\5.7\Src\qtbase/qmake/library/qmakebuiltins.cpp: In member function 'QByteArray QMakeEvaluator::getCommandOutput(const QString&) const'

C:\Qt\Qt5.7.0\5.7\Src\qtbase/qmake/library/qmakebuiltins.cpp:419:94: error: '_popen' was not declared in this scope + QLatin1String(" && ") + args).toLocal8Bit().constData(), "r")) {

C:\Qt\Qt5.7.0\5.7\Src\qtbase/qmake/library/qmakebuiltins.cpp:427:23: error: '_pclose' was not declared in this scope QT_PCLOSE(proc);

Makefile:204: recipe for target 'qmakebuiltins.o' failed mingw32-make: *** [qmakebuiltins.o] Error 1 Building qmake failed, return code 2

Mein Ziel ist es, die endgültige Version Standalone und Größe zu machen optimiert (nur notwendige Symbole, die von den libs verwendet werden), auch in der Verbindung, die ich zur Verfügung stellte, sehe ich MinGw nicht erwähnt, ich habe nicht (und will es nicht bekommen).

+0

Beachten Sie, dass die MinGW-Tools es derzeit nicht möglich machen, nicht verwendete Teile einer Objektdatei zu entfernen, siehe [dieser Fehlerbericht] (https://sourceware.org/bugzilla/show_bug.cgi?id=11539). Die statische Verbindung und das Entfernen der meisten Sachen sollte jedoch immer noch möglich sein. – rubenvb

+0

Ich würde auch vorschlagen, dass Sie versuchen [MSYS2] (http://msys2.github.io/) und seine qt5-static-Paket, das eine gebrauchsfertige statisch gebaute Qt bietet, sparen Sie die Mühe, alles zu bauen. – rubenvb

+0

@rubenvb Ich versuche, inoffizielle Veröffentlichung zu vermeiden, da es immer mit Kompatibilitätsproblemen oder Projektaufgabe kommt. – Guest547

Antwort

1

Es ist Open Source. Alle unsere Rezepte und Patches sind veröffentlicht. MSYS2 hat eine Erfolgsbilanz, dass es keine Abandonware ist, aber wenn Sie Orte finden, die wir besser machen können, dann helfen Sie bitte. MSYS2 ist sehr kompatibel mit dem Rest von MSYS2. Mehr können wir nicht versprechen.