Je compile certains programmes ici et j'ai 4 cœurs. Existe-t-il un moyen de dire à make
, cmake
ou gcc
de compiler en utilisant tous les cœurs ou quelque chose de ce genre qui le concerne?
Si un package le prend en charge, vous pouvez utiliser l’indicateur -j
pour autoriser l’exécution de tâches parallèles, par exemple:
make -j8
Vous trouverez plus de détails sur ce drapeau dans la question Stackoverflow Pourquoi make -j fonctionne-t-il mieux quand on lui transmet un nombre supérieur au nombre de cœurs disponibles? .
Si vous avez plusieurs machines, essayez distcc a essayer. Sur les machines impliquées, Sudo apt-get install distcc
. En supposant que votre machine de compilation soit 192.168.1.1:
sur les machines auxiliaires, exécutez:
Sudo distccd --log-file=/tmp/distccd.log --daemon -a 192.168.1.1
Sur la machine de construction, avant d'exécuter configure
ou cmake
, vous devez spécifier les hôtes que vous souhaitez utiliser pour le processus de construction. Spécifiez éventuellement le nombre de travaux simultanés après une barre oblique (4 par défaut):
export DISTCC_HOSTS='localhost/4 192.168.1.2/8 192.168.1.3/8'
Faites en sorte que le compilateur utilise distcc:
export PATH="/usr/lib/distcc:$PATH"
Maintenant configure
ou cmake
l'application et compilez avec:
make -j$(distcc -j)
Notez que si vous avez mis /usr/lib/distcc
deux fois dans votre PATH, cela échouera. Veillez à ne définir /usr/lib/distcc
qu'une seule fois dans votre PATH
.
Pour plus de détails, voir les pages de manuel de distcc (1) et distccd (1) .