184 votes

Compiler avec g ++ en utilisant plusieurs cœurs

Question rapide: quel est l'indicateur du compilateur permettant à g ++ de générer plusieurs instances de lui-même afin de compiler plus rapidement des projets volumineux (par exemple 4 fichiers source à la fois pour un processeur multi-core)?

Merci beaucoup.

252voto

frankodwyer Points 9422

Vous pouvez le faire avec faire avec gnu make c'est l'option-j (il sera également aider sur une machine monoprocesseur).

Par exemple, si vous voulez que 4 emplois parallèles de faire:

make -j 4

Vous pouvez également exécuter gcc dans un tuyau avec

gcc -pipe

Ce sera pipeline de la compilation étapes, qui sera également aider à garder les noyaux occupé.

Si vous avez d'autres machines à votre disposition, vous pouvez consulter distcc, qui se ferme compile pour ceux aussi bien.

45voto

Mihai Limbășan Points 17205

Il n’y a aucun tel drapeau et ayant un parcours contre la philosophie Unix d’avoir chaque outil qu’une fonction et effectuer ce bien. Frai le compilateur traite est conceptuellement le travail du système de génération. Ce que vous cherchez probablement est le drapeau -j (emplois) de GNU make, la

faire - j4

Vous pouvez utiliser pmake ou semblable parallèle prendre des systèmes.

12voto

MattyT Points 3195

Gens ont mentionné mais [ ](http://www.boost.org/doc/tools/build/index.html) prend également en charge un concept similaire. À l’aide de indique à bjam pour construire jusqu'à Commandes simultanées.

Nous utilisons les mêmes scripts de compilation sous Windows et Linux et l’utilisation de cette option diminue de moitié nos temps de construction sur les deux plates-formes. Agréable.

10voto

rmeador Points 15107

Cela fera pour vous. Enquêter sur les et interrupteurs dans la page de manuel. Je ne pense pas que est parallélisable.

7voto

Jason Points 51

distcc peut également être utilisé pour distribuer compile non seulement sur l’ordinateur actuel, mais aussi sur d’autres machines dans une batterie de serveurs disposant de distcc installé.

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