GNU make --jobs opzione qmake
Domanda
Sto usando qmake per generare mingw32 Makefile per una piccola applicazione Qt C ++ che stiamo sviluppando. Mio problema: tutte queste CPU quad core / dual sono seduti folle mentre solo un thread sta facendo dell'edificio. Al fine di parallelizzare cose che passano provato --jobs 4 fare, ma il problema è che qmake genera un makefile generico all'interno del quale fanno viene chiamato di nuovo con -f.
E 'possibile forzare qmake per aggiungere opzioni per rendere quando si genera il makefile? O forse c'è un altro modo di impostare l'opzione di fuori di qmake del tutto? Non riesco a modificare quel Makefile specifico dal momento che è generato automaticamente ogni generazione.
Soluzione
Abusando $MAKE
per passare le opzioni non funziona in tutti i casi. Spesso, (ad esempio in script di configurazione di Qt su Unix), è racchiuso tra virgolette ("$MAKE"
) per consentire il comando per contenere spazi. Lo so perché ho usato lo stesso trucco, prima ha smesso di funzionare. Qt Support poi suggerito (giustamente) da utilizzare $MAKEFLAGS
come in
set MAKEFLAGS=-j4
make
Altri suggerimenti
Questo funziona per me:
set MAKE_COMMAND = mingw32-make -j% NUMBER_OF_PROCESSORS%
Il Makefile generico utilizza $(MAKE)
quando si richiama fare, in modo da poter sovrascrivere utilizzando le variabili di ambiente. Qualcosa del genere dovrebbe farlo:
qmake
make MAKE="mingw32-make -j4"
Sostituire i valori di MAKE
come richiesto ovviamente:)