Estoy compilando algunos programas aquí y tengo 4 núcleos. ¿Hay una manera de contar make, cmakeo gcccompilar utilizando todos los núcleos o algo para que afectan?
Si un paquete lo admite, puede usar el -jindicador para permitir la ejecución de trabajos paralelos, por ejemplo:
make -j8
Se pueden encontrar más detalles sobre este indicador en la pregunta de Stackoverflow ¿Por qué make -j funciona mejor cuando se pasa un número mayor que el número de núcleos disponibles? .
Si tiene varias máquinas, pruebe distcc . En las máquinas incluidas sudo apt-get install distcc. Suponiendo que su máquina de compilación es 192.168.1.1:
en las máquinas auxiliares, ejecute:
sudo distccd --log-file=/tmp/distccd.log --daemon -a 192.168.1.1
En la máquina de compilación, antes de ejecutar configureo cmakedebe especificar los hosts que desea usar para el proceso de compilación. Opcionalmente, especifique el número de trabajos simultáneos después de una barra oblicua (el valor predeterminado es 4):
export DISTCC_HOSTS='localhost/4 192.168.1.2/8 192.168.1.3/8'
Haga que el compilador use distcc:
export PATH="/usr/lib/distcc:$PATH"
Ahora configureo cmakela aplicación y compilar con:
make -j$(distcc -j)
Tenga en cuenta que si ha puesto /usr/lib/distccdos veces en su RUTA, fallará. Asegúrese de configurar /usr/lib/distccsolo una vez en su PATH.
Para obtener más detalles, consulte las páginas del manual de distcc (1) y distccd (1) .
distccd --user nobody. De lo contrario, se ejecutará bajo el usuario que lo ejecutó.