55 votes

Comment faire une construction parallèle dans Visual Studio 2010

Comment puis-je obtenir par rapport à 2010 pour exécuter plus d'une C++ compiler à la fois? Je veux dire la construction de l'objet de modules en parallèle; je ne suis pas intéressé par la construction de plus d'un projet à un moment (je sais que sur Outils > Options > Build et Run < nombre Maximal de projet parallèle construit, mais ce n'est pas faire ce que je veux).

En gros, je suis à la recherche pour Visual Studio est l'équivalent de "faire -jN".

-edit - je suis en train de mettre un bounty.

L'option actuelle existent cependant qui ne fait pas plus de un cl processus apparaissent donc la compilation est toujours 1 cpu. Quelqu'un aurait-il une solution pour VS10 ou 11 (qui est en version bêta)? Aussi les drapeaux/options qui empêchent le multithread drapeau de travail doivent être mentionnés. J'ai beaucoup de cœurs et ça me gêne d'utiliser seulement 1.

34voto

Billy ONeal Points 50631
  1. Outils -> Options
  2. Projets et solutions \ Paramètres de projet VC ++
  3. Compilations C ++ simultanées maximales

En outre, comme Ross Smith l'a mentionné dans les commentaires, vous devez également activer l'option "Compilation multiprocesseur" du projet:

  1. Propriétés du projet
  2. Propriétés de configuration> C / C ++> Général
  3. Compilation multi-processeurs
  4. Profit!

18voto

Skierbi Points 137

Il y a deux interrupteurs doivent être définies afin de rendre VS construire en utilisant le multithreading (les deux sont spécifiques au projet):

  • propriétés du projet->C/C++->Général->Multi-processeur Compilation : Oui (/MP)
  • propriétés du projet->C/C++->Génération de Code->Activer la régénération Minimale : Aucun (/Gm-)

Vérifiez également Vos Outils->Options->les Projets et les Solutions->Projet VC++ Paramètres->simultanées Maximum C++ compilations de réglage. La valeur par défaut est 0, ce qui permet de VS à utiliser que de nombreux concurret compilations que possible.

15voto

Roberto Liffredo Points 15265

Necrolis' commentaire semble la bonne solution.

/MP (Build avec Plusieurs Processus)

L' /MP option, le compilateur pour créer un ou plusieurs exemplaires de lui-même, chacun dans un processus séparé. Ces copies simultanément la compilation des fichiers sources. Par conséquent, le total de temps pour construire le les fichiers source peuvent être considérablement réduits.

Notez que vous pouvez la définir au niveau du projet (et donc il va s'appliquer à tous les fichiers qu'il contient) ainsi que pour les fichiers individuels, utile par exemple si vous devez utiliser #import.

En particulier, /MP est généralement pas compatible avec les en-têtes précompilés, ou de sources à l'aide de #import; dans ce cas, vous pouvez toujours définir /MP drapeau sur le projet, puis l'effacer sur le single de fichiers (généralement, stdafx.cpp et tout fichier à l'aide de #import).

4voto

acidzombie24 Points 28569

Voici ce que j'ai fait

1) Allez dans Outils->Options de sous "le Projet Et les Solutions"->"Build and Run" pour moi il avait du nombre de cœurs. Bien qu'au premier abord je pensais que c'était tout ce que j'avais à faire, mais il n'est pas

2) cliquez-Droit sur votre projet et sélectionnez propriétés. Sous "propriétés de configuration"->"C/C++"->"Ligne de Commande", entrez /MP4 où 4 est le nombre de coeurs que vous avez. Vous recevrez un waring sur les drapeaux n'étant pas compatible, donc nous avons une autre étape

3) Allez à la rubrique "propriétés de configuration"->"C/C++"->"Génération de Code", il est "de Permettre minimum de reconstruction". Changement de pas.

Reconstruire et vous devriez voir plusieurs CL processus dans le gestionnaire des tâches.

4voto

Rian Sanderson Points 1019

jom est l'outil que vous recherchez.

À partir du wiki: http://qt-project.org/wiki/jom

jom est un clone de nmake à soutenir la réalisation de plusieurs indépendant des commandes en parallèle. Il ajoute essentiellement la commande j commutateur de ligne similaire à GNU make.

Alors que la plupart de la documentation est destinée à des développeurs Qt en essayant d'accélérer la bibliothèque Qt s'appuie sur windows, jom devrait fonctionner parfaitement bien dans non Qt projets trop, aussi longtemps que vous avez un nmake compatible makefile.

La page wiki a des binaires vous pouvez télécharger, et vous appelez jom comme vous le feriez nmake.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X