GNU --jobs Option in QMake machen
Frage
Ich bin mit qmake MinGW32 Makefiles für einen kleinen Qt C ++ App entwickeln wir zu generieren. Mein Problem: alle diese Dual / Quad-Core-CPUs sitzt da untätig, während nur ein Thread das Gebäude tut. Um die Dinge zu parallelisieren versuchte ich zu machen --jobs 4 vorbei, aber das Problem ist, dass qmake erzeugt eine generische Make-Datei in dessen Inneren erneut aufgerufen machen wird mit f.
Ist es möglich, qmake zu zwingen Optionen hinzufügen zu machen, wenn die Make-Datei zu erzeugen? Oder vielleicht ist es eine andere Art und Weise die Möglichkeit, außerhalb von insgesamt Qmake der Einstellung? Ich kann es nicht, dass bestimmte Makefile bearbeiten, da es jeden Build automatisch generiert wird.
Lösung
Abusing $MAKE
Optionen nicht passieren alle Fälle arbeiten. Oftmals (zum Beispiel in dem Configure-Skript von Qt auf Unix), ist es in doppelten Anführungszeichen ("$MAKE"
), um den Befehl zu ermöglichen Leerzeichen enthalten. Ich weiß, weil ich den gleichen Trick verwendet, bevor es aufgehört zu arbeiten. Qt Unterstützung schlug dann (zu Recht) $MAKEFLAGS
wie in
set MAKEFLAGS=-j4
make
Andere Tipps
Dies funktioniert für mich:
gesetzt MAKE_COMMAND = mingw32-make -j% NUMBER_OF_PROCESSORS%
Die allgemeine Makefile verwendet $(MAKE)
wenn macht Aufruf, so dass Sie es mit Umgebungsvariablen überschreiben können. So etwas sollte es tun:
qmake
make MAKE="mingw32-make -j4"
Ersetzen Sie die Werte von MAKE
als natürlich erforderlich:)