Estoy compilando algunos programas aquí y tengo 4 núcleos. ¿Hay una manera de contar make
, cmake
o gcc
compilar utilizando todos los núcleos o algo para que afectan?
Estoy compilando algunos programas aquí y tengo 4 núcleos. ¿Hay una manera de contar make
, cmake
o gcc
compilar utilizando todos los núcleos o algo para que afectan?
Respuestas:
Si un paquete lo admite, puede usar el -j
indicador 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 configure
o cmake
debe 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 configure
o cmake
la aplicación y compilar con:
make -j$(distcc -j)
Tenga en cuenta que si ha puesto /usr/lib/distcc
dos veces en su RUTA, fallará. Asegúrese de configurar /usr/lib/distcc
solo 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ó.