GNU make --jobs option QMake
Question
J'utilise qmake pour générer MingW32 Makefile pour un petit Qt C ++ application que nous développons. Mon problème: tous ces processeurs dual / quad core sont assis là les bras croisés alors qu'un seul thread est en train de faire du bâtiment. Afin de paralléliser choses que j'ai essayé en passant --jobs 4 à faire, mais le problème est que qmake génère un Makefile générique à l'intérieur duquel est appelé à nouveau faire avec -f.
Est-il possible de forcer qmake d'ajouter des options à faire lors de la génération du makefile? Ou peut-être il y a une autre façon de régler l'option en dehors de qmake tout à fait? Je ne peux pas modifier ce Makefile spécifique car il est généré automatiquement chaque version.
La solution
Abuser $MAKE
pour transmettre des options ne fonctionne pas dans tous les cas. Très souvent, (par exemple dans le script de configuration de Qt sur Unix), il est enfermé dans des guillemets doubles ("$MAKE"
) pour permettre la commande de contenir des espaces. Je le sais parce que je le même tour avant qu'il a cessé de travailler. Qt soutien alors suggéré (à juste titre) d'utiliser $MAKEFLAGS
comme dans
set MAKEFLAGS=-j4
make
Autres conseils
Cela fonctionne pour moi:
set MAKE_COMMAND = mingw32-make -j% NUMBER_OF_PROCESSORS%
Le Makefile générique utilise $(MAKE)
lors de l'invocation faire, vous pouvez le remplacer en utilisant des variables d'environnement. Quelque chose comme ça devrait le faire:
qmake
make MAKE="mingw32-make -j4"
Remplacez les valeurs de MAKE
au besoin bien sûr:)