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.

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top