2009-07-13 9 views
2

J'utilise incredibuild pour la compilation parallèle ... J'ai aussi besoin d'une liaison parallèle mais je ne pouvais pas la gérer pour la liaison. Savez-vous qu'il est possible de le rendre parallèle?Incredibuild liant

  • s'il y a un moyen, pourriez-vous me le dire?
  • sinon, connaissez-vous d'autres outils à cette fin?

j'ai trop de projets et j'ai besoin de les relier sur des machines séparées ..

+0

Vous trouverez un peu d'informations sur une diapositive intitulée "Liaison simultanée" dans [cette présentation] (http: // www.airs.com/ian/gold-slides.pdf) (PDF, tiré de [ici] (http://www.airs.com/ian/pubs.html)). –

Répondre

1

Vous pouvez lier deux/projets/en parallèle.

Vous ne pouvez pas lier un seul projet en parallèle. C'est parce que Incredibuild n'est pas un compilateur ou un éditeur de liens lui-même - c'est juste un coordinateur en plus des outils VS existants. Il lance plusieurs instances du compilateur pour différents fichiers sources, mais l'éditeur de liens VS ne peut être invoqué qu'une seule fois pour lier un projet entier.

J'ai utilisé Incredibuild pendant un certain temps, mais il a quelques bogues avec des cas limites (par exemple, des encapsuleurs ActiveX interop) qui ont causé trop de problèmes. Ajoutez à cela que Visual Studio peut faire des compilations multi-threads de toute façon, cela ne vaut pas l'argent. (Mis à part: il n'est pas documenté, mais vous pouvez compiler plusieurs threads dans VS2005 en ajoutant les propriétés du projet/MP C++.)

+0

je veux lier sur parallèle plus de 20 projets. En fait, je sais que je ne peux pas faire un seul projet parallèle, mais j'ai besoin d'un lien parallèle pour plus d'un projet. Je suis content de compiler sur des machines parallèles. il y a beaucoup de machines au travail et cela rend très court pour une reconstruction complète. mais le problème est sur la liaison. car il n'utilise pas d'autres ordinateurs. – ufukgun

+0

La génération multi-thread est la construction de plusieurs projets, si vous avez besoin de plus de temps passé sur un projet, il ne construit pas plusieurs fichiers dans le projet à la fois. Incredibuild peut améliorer le temps de construction sur le natif. –

+1

@Greg ---- huh? –

2

Le lien n'est pas vraiment sensible au traitement parallèle car il est le point de sérialisation naturel dans la production d'un exécutable:

  • plusieurs développeurs peuvent écrire du code en parallèle, parce que le code est dans de nombreux fichiers sources différentes
  • compilateurs peuvent compiler le code en parallèle, parce que plusieurs instances du compilateur peuvent prendre les nombreux fichiers source et produire de nombreux objets fichiers
  • l'éditeur de liens ne peut pas (facilement) k en parallèle, car il faut beaucoup de fichiers objet et produit un donc je pense que seul exécutable

vous serez hors de la chance, certainement pour les linkers couramment utilisés tels que MS et gcc.

0

Il y a quelques suggestions de réglages généraux sur Improving link time with Incredibuild

Vous pouvez aussi sauter la liaison des libs statiques où vous ne les distribuer à l'aide Incredilink

Nous avons trouvé que l'ajout d'une étape de post signature de construction arrêterait IncrediBuild de travailler sur des projets suivants, ajouter un commentaire à poster build était censé aider

rem IncrediBuild_AllowOverlap 

Voir IncrediBuild_AllowOverlap doc

2

IncrediBuild prend en charge la possibilité d'exécuter une liaison en parallèle. Accédez à Paramètres de l'agent-> Visual Studio Builds-> Général-> Autoriser les étapes de liaison à s'exécuter en parallèle

Questions connexes