Я собираю некоторые программы здесь, и у меня есть 4 ядра. Есть ли способ заставить make
, cmake
или gcc
компилировать, используя все ядра или что-то такое, что может повлиять?
Если пакет поддерживает его, вы можете использовать флаг -j
, чтобы разрешить выполнение параллельных заданий, например:
make -j8
Более подробную информацию об этом флаге можно найти в вопросе Stackoverflow Почему заставить -j работать лучше, когда ему передается число, превышающее число доступных ядер? .
Если у вас несколько машин, попробуйте distcc . На задействованных машинах, sudo apt-get install distcc
. Предполагая, что ваша машина сборки равна 192.168.1.1:
на машинах помощника, запустите:
sudo distccd --log-file=/tmp/distccd.log --daemon -a 192.168.1.1
На машине сборки перед запустив configure
или cmake
, вы должны указать хосты, которые вы хотите использовать для процесса сборки. При желании укажите количество одновременных заданий после косой черты (по умолчанию 4):
export DISTCC_HOSTS='localhost/4 192.168.1.2/8 192.168.1.3/8'
Заставьте компилятор использовать distcc:
export PATH="/usr/lib/distcc:$PATH"
Теперь configure
или cmake
приложение и сборка с:
make -j$(distcc -j)
Обратите внимание, что если вы дважды добавили /usr/lib/distcc
в вашу переменную PATH, она потерпит неудачу. Обязательно установите /usr/lib/distcc
только один раз в PATH
.
Для получения дополнительной информации см. Страницы руководства для distcc (1) и distccd (1) .