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.

È stato utile?

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:)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top