Je viens de recevoir un nouvel ordinateur quad core et j'ai remarqué que nmake n'utilise qu'un seul processus.
J'avais l'habitude d'utiliser make qui avait le commutateur -j4 pour lancer 4 processus. Qu'est-ce que l'équivalent nmake?
[modifier] Sur la base des informations ci-dessous, j'ai pu ajouter une commande à mon fichier de projet qmake:
QMAKE_CXXFLAGS + =/MP
Ce qui l'a effectivement fait pour moi. Merci beaucoup.
Selon MSDN , il n'y a pas une telle option pour nmake
.
Vous pouvez cependant faire en sorte que le compilateur crée plusieurs fichiers en parallèle en utilisant le /MP
option avec le compilateur de ligne de commande VC++ et en passant plusieurs fichiers en même temps:
> cl /MP a.cpp b.cpp c.cpp
Notez cependant que la plupart des Makefiles n'appellent pas le compilateur comme ceci - ils invoquent habituellement le compilateur séparément pour chaque fichier source individuel, ce qui empêcherait le /MP
option de faire quelque chose d'utile.
Une autre façon générique, non liée à Qt, de dire à nmake
d'utiliser tous les cœurs consiste à définir la variable d'environnement CL
à /MP
:
set CL=/MP
nmake
utilisera tous les cœurs de CPU.
QT a un outil supposé pour cela http://qt.gitorious.org/qt-labs/jom
CMake 2.8.1 RC1 , quant au moment d'écrire ceci, il est prêt à essayer, apporte un nouveau générateur pour NMake qui s'appelle NMake Makefiles JOM et il génère NMake avec paramètres spécifiques pour jom, qui est la baisse de remplacement de NMake. Ainsi, il permet une construction multi-traitement à l'aide de NMake.
Incredibuild prétend pouvoir exécuter des builds nmake sur plusieurs cœurs/plusieurs machines. Je n'en ai aucune expérience.
La recherche rapide sur Google donne: http://msdn.Microsoft.com/en-us/library/bb385193.aspx
Cela ne fonctionne pas pour les makefiles normaux, mais il existe un paramètre dans Visual Studio 2005 qui vous permet de créer plusieurs fichiers .vcproj en même temps (à condition que l'un ne dépende pas de l'autre). Outils -> Options -> Projets et solutions -> Créer et exécuter -> X nombre maximal de constructions de projets parallèles.